繁体   English   中英

临时对话结束疑问

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM