2011-01-09 23 views
1

サーバーの進捗状況をFaceletに表示するにはどうすればよいですか? サーブレットを書く必要がありますか?または、それはApplicationScoped豆を介して可能ですか?JSFプログレスバー - サーバー側プロセス

インジケータ(プログレスバー)をAjax形式で更新したいとします。

答えて

2

どのような進捗状況を表示したいかによって異なります。基本的には、あなたのFaceletにプログレスバーコンポーネント(例:http://www.primefaces.org/showcase/ui/progressBar.jsf)を置き、進捗情報を提供できるBeanに値をバインドします。

上記の進捗状況を取得する方法はまったく別の質問であり、JSFの直接の領域外です。たとえば、バックグラウンドの進捗状況がQuartzジョブの場合、BeanはそのジョブIDを覚えていて、進捗バーがポーリング要求を送信するたびにQuartzスケジューラでそれを調べることができます。 Quartzジョブ内で実行されているコードは、プロセス全体のどこまで計算される必要があります。

サーブレット3.0とCDIのイベントバスを使用すると、逆AJAX /コメットを利用して、進行状況バーがポーリングする代わりに、更新イベントを待つようにすることもできます。その場合、バックグラウンドジョブは定期的に更新イベントを発行する必要があります。これはより効率的ですが、比較的新しいものであり、常にすぐにサポートされているわけではありません。

+0

私はそのプロセスを完了しました。進歩の価値を得ることができるので、最初の解決策は私にとっては十分だと思いますが、2番目の解決策も非常にいいですし、いつか試してみることもできます。 – ehsun7b

関連する問題