如何使用@ConversationScoped 处理多个backing bean?
How to use @ConversationScoped to handle more than one backing bean?
Java1.7/JSF 2/JPA 2/Hibernate 4
我已经阅读了许多关于 @ConversationScoped
的教程和帖子,并且在所有这些教程和帖子中,信息都是相同的:当您对 one 有很多意见时使用它支持 bean。
但是,我有一个业务流程场景,我必须:
- 在列表页面中显示多个项目(由列表支持 bean 支持);
- 显示编辑页面(由 另一个 支持 bean 支持)以编辑列表的特定项目;
- 编辑完成后,返回到应显示相同先前上下文的列表页面。
编辑页面很复杂并且有很多依赖项,这些依赖项在列表支持 bean 中没有意义,这就是为什么我更喜欢让两个支持 bean 在两个不同的页面上工作,但在一个业务上下文中。
能实现吗?步骤是什么?
经过一些测试,我可以让它工作。我所要做的就是在我的编辑按钮上添加 cdi 按钮参数。为了让它工作,我的编辑按钮必须是这样的:
<p:commandButton title="Edit"
action="#{myMB.nextView}"
ajax="false">
<f:param name="id" value="#{bean.id}"/>
<f:param name="cid" value="#{myMB.conversation.id}"/>
</p:commandButton>
Java1.7/JSF 2/JPA 2/Hibernate 4
我已经阅读了许多关于 @ConversationScoped
的教程和帖子,并且在所有这些教程和帖子中,信息都是相同的:当您对 one 有很多意见时使用它支持 bean。
但是,我有一个业务流程场景,我必须:
- 在列表页面中显示多个项目(由列表支持 bean 支持);
- 显示编辑页面(由 另一个 支持 bean 支持)以编辑列表的特定项目;
- 编辑完成后,返回到应显示相同先前上下文的列表页面。
编辑页面很复杂并且有很多依赖项,这些依赖项在列表支持 bean 中没有意义,这就是为什么我更喜欢让两个支持 bean 在两个不同的页面上工作,但在一个业务上下文中。
能实现吗?步骤是什么?
经过一些测试,我可以让它工作。我所要做的就是在我的编辑按钮上添加 cdi 按钮参数。为了让它工作,我的编辑按钮必须是这样的:
<p:commandButton title="Edit"
action="#{myMB.nextView}"
ajax="false">
<f:param name="id" value="#{bean.id}"/>
<f:param name="cid" value="#{myMB.conversation.id}"/>
</p:commandButton>