3

私は2つのシナリオを持っています。 私のボタン
のようなビーンにロジックを持つ2つのアクションがあります

<h:commandButton  value="Submit" action="#{bean.test}" />
<h:commandButton  value="Submit" action="#{bean.testOne}" />

これは2つのcommnadButtonであり、Beanにはロジックがあります

public void test() {
    log.info("I m in test");
}

public void testOne() {
    log.info("I m in testOne");
    try {
        FacesContext.getCurrentInstance()
            .addMessage("", new FacesMessage("Record Saved successfully."));
        FacesContext
                .getCurrentInstance()
                .getExternalContext()
                .redirect(
                        FacesContext.getCurrentInstance()
                            .getExternalContext().getRequestContextPath()
                                + "/cycle/page");

    } catch (IOException e) {
        log.error(e.getMessage());
    }
}

最初のボタン (テスト アクション) をクリックしようとすると、jsf ライフ サイクルが
復元ビューのようなすべてのフェーズに移動します。
リクエスト値を適用します。
検証
更新モデルを処理します。
アプリケーション
レンダー レスポンスを呼び出し
ます。
復元ビューのようなアプリケーションを呼び出した後の応答
適用要求値
プロセス検証
更新モデル
アプリケーションを呼び出す
復元ビューの
レンダリング応答

簡単な言語では、facesContext を介してページをナビゲートすると、jsf はそのフェーズをスキップします。
しかし、なぜこれが起こるのですか?問題がわかりません。

4

1 に答える 1