【问题标题】:CDI/Weld - how to handle browser page refresh after ending conversation?CDI/Weld - 结束对话后如何处理浏览器页面刷新?
【发布时间】: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


    【解决方案1】:

    没有解决方法。默认的@ConversationScoped 完全被破坏了。我正在使用来自 MyFaces CODI 的 @ConversationScoped。它解决了您使用标准示波器可能遇到的所有问题。

    【讨论】:

      猜你喜欢
      • 2017-12-17
      • 2011-06-03
      • 1970-01-01
      • 2013-03-19
      • 1970-01-01
      • 1970-01-01
      • 2020-08-12
      • 2021-09-19
      • 2017-01-26
      相关资源
      最近更新 更多