【发布时间】:2011-09-19 03:39:22
【问题描述】:
在使用 CDI 的早期,我会导航到一个运行时间很长的页面 使用 faces-redirect=true 进行对话,所以我有一个类似 ..myPage.xhtml?cid=1 的 URL。
在某个时候我结束了对话,我的意思是这必须是合理的事情 或者你也可以使用会话范围?不管怎样,我结束了谈话,然后 用户按 F5,然后这当然会导致“未找到对话”错误,因为 cid=1 不存在。
谁能建议如何解决这个问题?我正在使用 Steven Verborgh ViewScoped 实现并简单地使用会话范围的 bean 来传递参数 页面之间。因此,例如,我有 2 个 @ViewScoped bean,每个都位于第 1 页和第 2 页。 我@Inject @ConversationScoped ParameterBean 到两个视图范围的bean中。我开始 从调用的操作方法中的对话(parameterBean.getConversation().begin()) 第 1 页。在第 2 页的 preRenderView 事件中,我引用了 将 parameterBean 放入第 2 页的支持 bean 实例变量并结束对话, 它已经完成了它的工作,不再需要。
除了 F5 问题,它工作正常。如果有人有任何建议,我将不胜感激, 希望我没有遗漏一些非常明显的东西。我有点假设没有得到 远离重定向。
谢谢。
【问题讨论】:
标签: jsf cdi seam-conversation