Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 2 使用f:event将ConversationScope bean注入ViewScope bean_Jsf 2_Cdi_Seam3 - Fatal编程技术网

Jsf 2 使用f:event将ConversationScope bean注入ViewScope bean

Jsf 2 使用f:event将ConversationScope bean注入ViewScope bean,jsf-2,cdi,seam3,Jsf 2,Cdi,Seam3,我不能将ConversationScoped bean注入到ViewScoped bean中,因为ConversationScoped bean的寿命可能比ViewScoped bean短,反之亦然,这取决于ConversationScoped bean的寿命是否长 为了克服这个限制,我尝试使用f:事件作为preRenderView侦听器执行注入: <f:metadata> <f:event type="preRenderView" listener="#{taskCon

我不能将ConversationScoped bean注入到ViewScoped bean中,因为ConversationScoped bean的寿命可能比ViewScoped bean短,反之亦然,这取决于ConversationScoped bean的寿命是否长

为了克服这个限制,我尝试使用f:事件作为preRenderView侦听器执行注入:

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

但是,这不起作用,侦听器初始化任务和getter getWorkPackage都没有被调用

我意识到我可以使用FacesContext从一个托管bean中查找另一个托管bean,但我很好奇为什么这不起作用。这是因为当我从另一个视图导航到一个视图时没有调用f:event侦听器吗?例如,没有重定向或直接页面视图

我还尝试了Seam 3 Faces中的s:viewAction标记,但没有成功。它也不会被调用


提前感谢。

我认为生命周期问题不会起作用,因为您始终有一个普通作用域bean的代理。您可以在会话处于活动状态时取消对会话范围bean的引用,也可以在会话未处于活动状态时取消引用会话范围bean,但您总能获得正确的会话