2

特定の @Request スコープ Bean の状態の維持に関する問題があります。Seam Entity List リクエスト スコープ コンポーネントがあります。そして、特定のリクエストの後、私はそれをその状態を維持し、リフレッシュしないようにしたいのでa4j:keepAlive、解決策を実行しますが、残念ながらa4j:keepAliveビュー内の他の機能を破棄するので、ページ全体を変更するだけで無視しa4j:keepAliveます.

私の質問は、コンポーネントを使用せずに、またはa4j:keepAliveコンポーネントを作成せずに、この特定のシナリオを維持するにはどうすればよいかということです。@SessionScope@ConversationScope

ありがとうございます。

4

2 に答える 2

2

Webサイトの開発にJSF2を使用している場合は、RichFaces4を使用することをお勧めします。RichFaces3.3主にJSF1.2をサポートするように構築され、その後JSF2をサポートするように拡張されました。一方、JSF2から。RichFaces4.xはJSF2で考えて構築されています。RF3.3からRF4に移行するのが賢明ですが、それでもRF 3.3を使い続けたい場合は、スコープを変更する必要があります。 BeanをViewScopeに追加し、の使用を停止しますa4j:keepAlive

より詳しい情報:

編集:

特定の問題については、セッションでデータを保存し、Request Managed Beanの作成時にデータを回復する必要があります。これにより、データはビューを通じて保持されますが、手動で作業を行う必要があります(保守も非常に困難です)。 。

管理対象Beanに使用しているjsp/faceletとのバインディング属性がある場合は、タグコンポーネントを使用せずa4j:keepAlive、代わりにリクエスト管理対象Beanにアノテーションを追加して@KeepAlive(ajaxOnly=false)、Beanの状態全体(バインディングコンポーネントも含む)を保存します。

于 2012-06-26T14:44:33.753 に答える
1

確認してください@ViewScope: http://balusc.blogspot.fr/2010/06/benefits-and-pitfalls-of-viewscoped.html

于 2012-06-26T11:40:58.230 に答える