gpt4 book ai didi

jsf - CDI/Weld - 结束对话后如何处理浏览器页面刷新?

转载 作者:行者123 更新时间:2023-12-04 18:27:14 24 4
gpt4 key购买 nike

在使用 CDI 的早期,我导航到一个长时间运行的页面
使用faces-redirect=true 激活对话,所以我有一个像..myPage.xhtml?cid=1 这样的URL。

在某个时候我结束了谈话,我的意思是这必须是一件合理的事情
或者你也可以使用 session 范围?不管怎样,我结束了谈话,然后
用户按 F5,然后当然这会导致“找不到对话”错误,因为 cid=1
不存在。

谁能建议如何解决这个问题?我正在使用 Steven Verborgh
ViewScoped 实现并简单地使用对话范围的 bean 来传递参数
页之间。例如,我有 2 个 @ViewScoped bean,每个 bean 都在第 1 和第 2 页。
我 @Inject @ConversationScoped ParameterBean 到两个 View 范围的 bean 中。我开始
对话(parameterBean.getConversation().begin())在action方法中调用
第 1 页。在第 2 页的 preRenderView 事件中,我引用了
将 parameterBean 转换为第 2 页的支持 bean 实例变量并结束对话,
它完成了它的工作,不再需要。

除了 F5 问题,它工作正常。如果有人有任何建议,我将不胜感激
希望我没有遗漏一些非常明显的东西。我有点假设没有得到
远离重定向。

谢谢。

最佳答案

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

关于jsf - CDI/Weld - 结束对话后如何处理浏览器页面刷新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6419442/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com