私は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 はそのフェーズをスキップします。
しかし、なぜこれが起こるのですか?問題がわかりません。