1

(JEE6を使用)これらの変更が発生したときに、WebページでBean /クラス内の値を自動的に更新(またはリッスン)してJSFに表示することは可能ですか?

4

2 に答える 2

1

KayKayが述べたように、javascriptを使用してある種のポーリング方法を実装し、サーバーに更新がある場合は定期的に送信するように要求できます。また、ajaxを使用しない限り、ページを完全に更新するだけで満足する必要があります。

JSFは、基本的なステートレスWebテクノロジーの上にあります。そのため、Ajaxまたはカスタムコードを使用しない限り、サーバーはクライアントからの要求にのみ応答します。icefacesのようないくつかのライブラリには、あなたが探しているものを可能にする「プッシュ」コンポーネントが組み込まれています(私が理解していることから、これはicefaxesの基本的な部分です)。つまり、サーバー側の変更をクライアントにプッシュします。

サーバーで値の変更が発生したときにBeanに通知されるように(サーバー上にあるバッキングBeanのように)、リスナーを設定する必要があります。変更が発生した場合は、「icefaces push」(または使用したくないことを示すprimefacesなどの別のライブラリ)と言って、クライアントに通知を送信するように依頼できます。クライアント側のコード(通常はajax / javascript)は通知を処理し、通常の要求応答に従ってオブジェクト全体の要求を送信します。つまり、通知は、クライアントが更新を要求できるように、変更したいものをクライアントに通知します。通知は別として、引き続き要求/応答します。

私はicefacesプッシュについて言及します。これは、これが現在このライブラリで好まれているように思われるためです。しかし、他の人もこれを持っています。標準のJSF2.0AJAXライブラリにこれがあるとは思いません。

確認すべきリソースがいくつかあります。

(ビデオは、何が起こっているのかを理解するための良いスタートであり、サイトの残りの部分を使用します) http://www.icesoft.org/demos/icepush-demos.jsf

古いですが、例として在庫の変更を使用して、あなたがやりたいことについてはまだ関連性のあるIBMチュートリアルだと思います。

http://www.ibm.com/developerworks/web/library/wa-aj-dynamic/index.html

そして、関連する別のスタックの質問:

Icefacesよりも優れたJSF2.0用のAjaxプッシュはありますか

残念ながら、JSFだけではこれを実行できないようです。これらのライブラリのいずれかを使用するか、さらに難しい場合は、独自のプッシュメカニズムを使用する必要があります。

于 2012-08-08T02:23:47.673 に答える
0

私はそうするためのJSF機能を知りません。たとえばjqueryloadメソッドを使用して、値が表示されているページの部分を更新するなど、JavaScriptのポーリングを実行するだけです。

何をしたいのかを知るのに役立ちます。変更があったときにページ全体を更新するか、最初から表示されるいくつかの値を更新するか、ページに新しい値を追加します。

于 2012-08-03T18:10:03.103 に答える