如何使用@ConversationScoped处理多个支持bean?

时间:2018-04-26 13:04:49

标签: java jsf-2 cdi

Java 1.7 / JSF 2 / JPA 2 / Hibernate 4

我已经阅读了一些关于@ConversationScoped的教程和帖子,并且在所有这些教程中都有相同的信息:当你有很多一个支持bean的视图时使用它。

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

  1. 在列表页面中显示多个项目(由列表支持bean支持);
  2. 显示编辑页面(由另一个支持bean支持)以编辑列表中的特定项目;
  3. 完成编辑后,返回应显示相同上一个上下文的列表页面。
  4. 编辑页面很复杂,并且有许多依赖项,这些依赖项在列表支持bean中没有意义,这就是为什么我更喜欢让两个支持bean在两个不同的页面上工作,但是在一个单独的业务环境中。

    可以实现吗?步骤是什么?

1 个答案:

答案 0 :(得分:1)

经过一些测试,我可以让它发挥作用。我所要做的就是在编辑按钮上添加 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>