JSF 2.0 と一緒にポートレット (jsr-286) を使用する場合に、セッション フラグの代わりになるものを探しています。
問題は、@PostConstruct を使用してバックエンドからデータをロードする必要があることです。その理由は、ポートレットが実行時に動的なポートレット ページ内にロードされるためです。そのため、ポートレットが最初にロードされるときに、RenderRequest に対して RESTORE_VIEW が呼び出され、いくつかのデータをロードするためにいくつかの Web サービスが呼び出されます。
ページでアクションをトリガーすると、ポートレット ランタイムの 2 つの要求で問題が発生します。最初に ActionRequest が処理され、再び RESTORE_VIEW が呼び出され、LifeCycle が INVOKE_APPLICATION の最後まで続行されます。ここで、RESTORE_VIEW と RENDER_RESPONSE を呼び出す RenderRequest が処理されます。
私の BackingBeans はすべて @RequestScoped です。これは、アクションを呼び出すときに @PostContruct が 2 回呼び出されることを意味し、Web サービスも 2 回呼び出されるため、パフォーマンスの問題が発生します。最も単純なアイデアは、ポートレット内でセッション フラグを使用することでした。これは、バックエンド サービスを呼び出す必要がある場合とそうでない場合を制御するために使用されます。
このアプローチに代わるより良い方法はありますか? Portlet-JSF2-Environment で他の人はどのように Bean の初期化を処理しますか?