Web アプリケーションでいくつかのスレッドを作成し、JSF ページにデータテーブル コンポーネントがあります。
テーブルを自動的に更新して、スレッドの現在のステータスを表示したいと思います。このシナリオで使用できるビルド前のコンポーネントはありますか?
Web アプリケーションでいくつかのスレッドを作成し、JSF ページにデータテーブル コンポーネントがあります。
テーブルを自動的に更新して、スレッドの現在のステータスを表示したいと思います。このシナリオで使用できるビルド前のコンポーネントはありますか?
Web アプリケーションでいくつかのスレッドを作成しました
あなたが正しい方法でそれを行ったので、それが壮大な災害に終わらないことを心から願っています.
テーブルを自動的に更新して、スレッドの現在のステータスを表示したいと思います。このシナリオで使用できるビルド前のコンポーネントはありますか?
基本的に、「ポーリング」または「プッシュ」と呼ばれる手法を探しています。ポーリングの基本的な概念は、JavaScript を使用するsetInterval()
かsetTimeout()
、(ajax) HTTP 要求を一定間隔でサーバーに送信し、それに応じて結果を処理させることです。プッシュの基本的な概念は、永続的な HTTP 接続を開き、サーバーに小さなメッセージを送信させることです。これは、特にJava EE 7WebSocket
の JavaScriptおよびJSR356 API で実行できます。
標準の JSF 実装では、すぐに使用できるポーリングまたはプッシュ コンポーネントは提供されません。今後の JSF 2.3 に向けて、新しい<f:websocket>
タグが現在進行中です (問題 1396も参照してください)。
あなたの最善の策は、非表示のコマンドリンク/ボタンを備えた非表示のフォームで<f:ajax>
あり、それをsetInterval()
. ただし、PrimeFaces のようなコンポーネント ライブラリは、すぐに使用できるコンポーネントを提供して<p:poll>
い<p:push>
ます。JSF ユーティリティ ライブラリOmniFacesには、その<o:commandScript>
ショーケースにポーリングの例があり、<o:socket>
ショーケースにいくつかのプッシュの例があります (新しい標準 JSF<f:websocket>
は主に に基づいています<o:socket>
)。