4

URLパラメーターに応じてBean値を初期化するための次のコードがあります。

<f:metadata>
    <f:viewParam name="id" value="#{inningBean.inningId}" />
    <f:event type="preRenderView" 
        listener="#{inningBean.initInningBeanForBallByBallScoring}" />
</f:metadata>

これはうまくいっています。しかし、特定の条件(たとえば、いくつかの検証)で、ユーザーがリスナーメソッドから別のページにリダイレクトされることを望みます。

どうやってやるの?

4

1 に答える 1

4

を使用しExternalContext#redirect()ます。

public void initInningBeanForBallByBallScoring() throws IOException {
    // ...

    if (someCondition) {
        ExternalContext ec = FacesContext.getCurrentInstance().getExternalContext();
        ec.redirect(ec.getRequestContextPath() + "/other.xhtml");
    }
}
于 2012-05-14T11:42:58.747 に答える