1

これが私のシナリオです:

私はJSFを使用しています。

  1. 5秒ごとに更新されるページがあります(ただし、すべてがajax化されているため、ユーザーはそれに気づきません)
  2. ユーザーが何か (ボタンなど) をクリックしたときに、ユーザーにリストを表示するモーダル ウィンドウが必要です。したがって、ユーザーがそのボタンをクリックするたびに、モーダルが最新のリストとともに表示されます。

現在、次のものがあります。プロパティがロードされたモーダル。このプロパティは、DB から内容をロードし、リストを JSF ページに返します。

主な問題は、ページが 5 秒ごとに更新されるため、このプロパティが 5 秒ごとに呼び出されることです (つまり、DB への要求)。

要約: 5 秒ごとに更新 (ajaxified) されるページ内で、ユーザーがボタンをクリックするたびにリストをロードするモーダルが必要です。

そのようなことをする正しい方法は何ですか?良いチュートリアルへのポインターは良い答えです。コードは必要ありませんが、ベストプラクティスを理解しています。

ありがとう。

4

2 に答える 2

0

ユーザーがボタンをクリックするたびにデータベースからリストをフェッチし、それを現在のリクエスト(スコープ=セッション、ビュー、会話など)に耐えるBeanのプロパティに入れてから、そのプロパティをELにバインドします表現。

ボタンをクリックしたときにリストをフェッチするには、ボタンでajaxリクエストをトリガーして、パネルのコンテンツを再レンダリングし、ajaxリクエストの完了時にパネルを表示します。使用しているajaxまたはコンポーネントライブラリについてはまだ述べていません。Richfacesを使用すると、次のようになります。

<a4j:commandButton 
    action="#{mybean.fetchListFromDatabase}" 
    rerender="panelcontent" 
    oncomplete="Richfaces.showModalPanel('thepanel')"
/>
于 2012-06-10T08:40:14.250 に答える
0

モーダル パネルは、RichFaces および PrimeFaces ライブラリに既に実装されています。

どちらの実装にも、基本的な動作を管理するための ajax と jQuery が含まれています。これらのいずれかを使用して、モーダル パネルと DB からデータを回復するリストを実装できます (ViewScope マネージド Bean を使用)。

これらのライブラリをプロジェクトに追加できない、または追加したくない場合は、それらのコードを使用して、実装のスタートアップとして使用できます (どちらのライブラリもオープン ソースです)。

于 2012-06-10T08:45:59.313 に答える