【发布时间】:2018-10-07 04:46:24
【问题描述】:
Java 1.7 / JSF 2 / JPA 2 / Hibernate 4
我已经阅读了许多关于@ConversationScoped 的教程和帖子,其中的信息都是相同的:当您对 一个 支持 bean 有很多视图时使用它。
但是,我有一个业务流程场景,我必须:
- 在列表页面中显示多个项目(由列表支持 bean 支持);
- 显示编辑页面(由另一个支持 bean 支持)以编辑列表的特定项目;
- 编辑完成后,返回列表页面,该页面应显示相同的先前上下文。
编辑页面很复杂,并且有许多在列表支持 bean 中没有意义的依赖项,这就是为什么我更喜欢让两个支持 bean 在两个不同的页面上工作,但在一个单一的业务上下文中。
这可以实现吗?步骤是什么?
【问题讨论】:
-
当您对一个支持 bean 有很多视图时使用它。它在哪里说明了这一点?你的 1,2,3 是可能的,我一直在做这些事情。在基本方面............我看不到真正的问题/问题......对不起......但也许'viewscoped'bean更适合这里......不确定
-
@Kukeltje:同时 - 在对话期间 - 客户端可以对 bean 执行 AJAX 请求或导航到仍然引用同一个托管 bean 的其他页面。在这些情况下,bean 将在客户端交互中保持其状态。。您将在byteslounge.com/tutorials/… 中找到它
-
@Kukeltje:所以,你说的是你用
@ViewScoped注释你的支持bean,然后简单地从一个页面导航到另一个页面,当你回到第一页时,它的上下文被保留了? -
据我所知,这里的问题是您想保留列表的上下文。但是,我不知道您所说的“上下文”是什么意思。是列表的顺序和过滤吗?
-
你的意思是没有范围绑定到那些支持 bean,所以我将盲目拍摄。如何制作那些支持 bean
@Dependent并将它们注入到这个@ConversationScopedbean 中?@ConversationScopedbean 然后将用于使用来自那些依赖 bean 的信息来恢复(设置)这些页面上的状态? (为了清楚起见 - 依赖 bean 的生命周期绑定到它注入的任何内容,因此只要对话存在,它就会存在。)