临时谈话结束了怀疑

时间:2009-11-27 00:02:14

标签: java jsf seam seam-conversation

我最近和Seam一起工作,临时谈话仍然让我感到困惑。

在我们的项目中,我们使用ExternalContext.redirect()将用户重定向到响应页面。根据我的阅读,Seam会话在调用渲染响应阶段时结束。

但后来我在其他地方读到了: Seam transparently propagates the conversation context (including the temporary conversation context) across JSF postbacks and redirects

因此,当我重定向到同一页面时会发生的事情是commandLinks始终将相同的conversationId附加到其动作URL。正如页面所说,我试图用<f:param name="conversationPropagation" value="none"/>结束临时对话,但这会导致在重定向页面呈现时,对话上下文已经过了,我们在哪里使用的bean不能再用了在回复中使用。

所以我想知道的是,如果有办法用重定向结束对话并保留上下文直到呈现响应?

如果没有,临时谈话什么时候真的结束?因为会话上下文是通过重定向和回发传播的,所以它对我来说它永远不会结束。

1 个答案:

答案 0 :(得分:0)

我的事情CONVERSATION范围由SEAM Frame work throw UI自动维护,如果你想创建一个新的对话,那么你可以这样做。

<h:commandButton id="conId" value="New Conversation" 
    action="#{conversationManager.clearConversation('/views/Hello.seam')}">  
</h:commandButton>

我不确定但是如果你想关闭一个CONVERSATION那么你可以尝试这样。

getConversation().end();

我不确定它是否会起作用。