Bean を新しいページの値で更新するのに苦労しています。ページに 2 つの送信ボタンがあり、ページのモードのブール値に基づいて表示するボタンを切り替えます。ページが更新のみの場合 (検証なし)、immediate="true" を持つ送信ボタンを表示します。 . ページが処理モード (検証) の場合、immediate="true" を持たない送信ボタンを表示します。私が直面している問題は、更新モード (検証なし) のときに、入力フィールドの値が Bean に設定されていないことです。このモードでやりたいことは、ページをそのまま保存して終了することだけです。そのページの情報は処理する準備ができていないか、必要に応じて「実際に使用する」ことができないため、検証は必要ありません。つまり、ページがプロセス モード (検証) の場合、すべてが意図したとおりに機能します。値が送信され、保存されます。
私がやろうとしていることについて特別なことは何もないので、まだコードを投稿していません。単純なゲッター/セッターを指す値バインディングがあります。私の Bean は @ViewScope にあります。
BalusC の優れたブログスポット投稿debug-jsf-lifecycleの例を使用してみました。入力フィールドに immediate="true" を設定しても、immediate="true" で送信ボタンをクリックしても影響はありません。とにかく、私が理解している方法は、 UICommand の immediate="true" であり、検証をスキップするかどうかをアプリケーションに指示するものです。入力フィールドに配置すると、検証がより早く行われます。何か不足していますか?
何か案は?これに関するすべての助けをいただければ幸いです。
アプリの仕様:
JSF 2.0.3
Tomcat 6.0.14