![](/img/trans.png)
[英]Temporary conversation not ending after ExternalContext.redirect()
[英]Temporary conversation ending doubt
我最近一直在与Seam合作,但临时对话仍然让我感到困惑。
在我们的项目中,我们使用ExternalContext.redirect()
将用户重定向到响应页面。 根据我的阅读,当调用渲染响应阶段时,Seam对话结束。
但是,然后我在其他地方读到了: Seam跨JSF回发和重定向透明地传播对话上下文(包括临时对话上下文) 。
因此,当我重定向到同一页面时,会发生以下情况,即CommandLink始终将相同的sessionId附加到其操作URL中。 正如页面上所说,我尝试以<f:param name="conversationPropagation" value="none"/>
结束临时对话,但这导致呈现重定向页面时,对话上下文已经被填充,我们在响应中不再使用的bean。
所以我想知道的是,是否有一种方法可以通过重定向结束对话并保留上下文,直到呈现响应为止?
如果不是,临时对话什么时候才能真正结束? 因为由于对话上下文是通过重定向和回发传播的,所以它对我来说是永远不会结束的。
如果要创建新的对话,那么CONVERSATION范围是由SEAM Frame工作抛出UI自动维护的,那么您可以这样做。
<h:commandButton id="conId" value="New Conversation"
action="#{conversationManager.clearConversation('/views/Hello.seam')}">
</h:commandButton>
我不确定,但是如果您想结束会话,可以尝试这样。
getConversation().end();
我不确定它是否会工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.