ユーザーがデータを入力して「保存」ボタンを押すページがあります。データはデータベースに保存されます。ページを更新して、新しいデータをデータベースに反映させたいと思います。マネージド Bean を使用していますが、ページを自動的に更新するにはどうすればよいですか?
3 に答える
私の頭に浮かぶ2つのオプションがあります:
- JSFナビゲーションルールを利用する
- レンダリングされた属性を使用する
広告1)
「保存」をクリックした後に移動するページを定義します。そのために、実際にデータをDBに保存するためのアクションは、actionListener
またはとして定義されたメソッドに入ります。保存プロセスの結果に応じて次のページを作成する場合は、として定義されますaction
。
ナビゲーションルールはfaces-config.xmlで定義されます。特定のアクションに一致するナビゲーションルールがない場合、現在のページが再表示されます(ただし、この更新を行った経験から、一般的なHTML更新とは異なります)。
広告2)
同じページにいくつかのリストまたはデータテーブルがBeanのモデルに設定されている場合、保存ボタンでtrueに設定されたキーワードを使用している場合を除き、変更が自動的に表示されます。immediate
さらに、Beanでブール値に設定されたプロパティを持つ、選択したコンテンツを含むパネルを検討することもできます。これはrendered
、保存プロセス内でトリガーされるため、保存を押した後にのみコンテンツが表示されます。
IceFacesのAJAXプッシュ機能を利用できます。これにより、クライアントの再レンダリングが初期化されます。
推奨される(そして最も簡単な)方法は、マネージドBeanでSessionRenderAPIを使用することです。
SessionRenderer.addCurrentSession("myGroup");
SessionRenderer.render("myGroup");
詳細については、Icefaces開発者ガイドを参照してください。