3

私の質問はこれ(そしておそらく他の人)に関連しています:

@PreDestroyが@ViewScopedで呼び出されることはありません

そこに述べられているように、ナビゲーション時にビュースコープのBeanを破棄するという簡単な解決策はなく、セッションが期限切れになったときにも同じことが当てはまるようです。

JSFビュースコープのBeanをリリースする(メソッドを呼び出す)ための重要なアプローチは@PreDestroyどのようになりますか、より具体的には、セッションが期限切れになるとすぐになりますか?

GlassFish3.1.2でJavaEE6とMojarra2.1.xを使用しています。

4

1 に答える 1

5

リソースを保持する Bean を作成し@SessionScoped(一部のコレクション/配列で?)、それを Bean に注入してから、セッション スコープの Bean に@ViewScoped依存します。@PreDestroy

確かに、この方法ではリソースが必要以上に長く存続しますが、これが最も簡単で信頼性の高い解決策です。ビュー スコープの Beanを維持したい場合は@PreDestroy、エンドユーザーが常にこのビュー スコープの Bean で HTTP POST 要求によってナビゲーションを実行するようにする必要があります。それを確実に保証することはできません (エンドユーザーの PC がクラッシュするなどの可能性があります)。

于 2012-10-26T11:21:03.070 に答える