如何使用@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。

但是,我有一个业务流程场景,我必须:

  1. 在列表页面中显示多个项目(由列表支持 bean 支持);
  2. 显示编辑页面(由 另一个 支持 bean 支持)以编辑列表的特定项目;
  3. 编辑完成后,返回到应显示相同先前上下文的列表页面。

编辑页面很复杂并且有很多依赖项,这些依赖项在列表支持 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>