【发布时间】:2011-12-10 16:51:21
【问题描述】:
在 JBoss AS7 中工作,使用 Conversation Scope 在浏览器选项卡中管理用户的交互。
我注意到我的页面附加了 ?cid 参数。这很棒 - 直到用户将页面添加为书签然后尝试返回它!对话过滤器给出“没有这样的对话”消息。
有没有更好的管理对话的方法?也许是实现或切换以使其使用隐藏字段(在 AJAX 中适当注意)?或者我将不得不开始尝试拦截对话异常或修改过滤器!
谢谢 - 理查德
进一步:
我正在拦截 BeforeRestoreView 事件以用于其他目的(主要是登录处理)。你会认为这会起作用:
/**
* @return true if there is no valid Conversation context.
*/
private boolean conversationNotActive()
{
Context conversationContext = m_beanManager.getContext(ConversationScoped.class);
return !conversationContext.isActive();
}
但我无法获得上下文来询问它是否处于活动状态!暂时只扔一个 Try-Catch。
【问题讨论】:
-
这已经解决了,但我仍然想知道是否有更好的 - 不那么突兀(并且与容器实现的耦合更少)的方式。