2011-01-13 13 views
0

ConversationScoped BeanをViewScoped Beanに挿入することはできません.ConversationScoped BeanはViewScoped Beanよりも短命になる可能性があります。 ConversationScoped Beanは永続的ではありません。この制限を乗り越えるためにf:eventを使用してViewScoped BeanにConversationScoped Beanを挿入する

、私はFを使用してみました:イベントはpreRenderViewリスナーとして注入を実行するために:

<f:metadata> 
    <f:event type="preRenderView" listener="#{taskController.initializeTask(workPackageConversation.workPackage)}" /> 
</f:metadata> 

このhowverが動作していない、どちらもリスナーinitializeTask、またゲッターgetWorkPackageされていますと呼ばれる。

FacesContextを使用して別のマネージドBeanを検索できますが、なぜこれが機能しないのか不思議です。それは、別のビューからビューに移動するときにf:eventリスナーが呼び出されないためですか?すなわち、リダイレクトまたはダイレクトページビューなしで

Seam 3 Facesのs:viewActionタグも試してみましたが、無駄です。どちらも呼び出されません。

ありがとうございます。

答えて

0

とにかく正規スコープのBeanへのプロキシをいつも持っているので、生涯の問題は発生しないと思います。 会話がアクティブであるか、アクティブではない間に会話スコープのBeanを参照解除するか、常に適切な会話を取得します。

関連する問題