パブリッシュ/サブスクライブ メカニズムと同様に機能する単純な Web アプリケーションを作成したいと考えています。文字列のリストと、この文字列をテーブルとして表示する xhtml を含む applicationScoped Bean があります。今、私はリスナーのようなものを追加したいのですが、applicationScoped Bean の文字列のリストが変更されると、テーブルも変更する必要があります。どうすればこれを達成できますか?
1 に答える
1
実際にはテーブルは自動的に変更されます。テーブルのあるページで F5 を押すと、新しいエントリが表示されることがわかります。JSF のレンダリング フェーズでvalue
は、テーブルの属性の背後にあるデータを再度処理します。
しかし、ユーザーが F5 を押すのではなく、他の解決策が必要だと思います。
最も簡単なのは、次のような ajax を使用してテーブルを更新するボタンです。
<h:commandButton value="Refresh" immediate="true">
<f:ajax render="tableComponent" />
</h:commandButton>
これは不器用なアプローチですが、実行する必要があるのはテーブルを再レンダリングすることだけであることを示しています。
サードパーティのライブラリを使用すると、これを自動的に行うこともできます。RichFaces を使用すると、<a4j:push>
. PrimeFaces では、 を使用できますPrimePush
。どちらも内部的に Atmosphere フレームワークを使用しています。リンクは、サーバーからクライアント (ブラウザー) に list-has-changed-eventを自動的にプッシュするためにそれらを使用する方法を示します。
于 2013-08-31T14:05:38.753 に答える