接缝会话范围范围的组件在下一个请求中消失
-
08-10-2019 - |
题
我有接缝会话划分的组件,自定义,它覆盖了标准的接缝身份(也是会话划分)。扩展的自定义具有财产
@Out(required=false, scope=ScopeType.SESSION)private User user
在Overriden Login()中,我定义了一个用户对象,该对象带有来自HttpservletRequest主体的信息。在应用程序中的第一个请求中,用户对象在会话范围中的预期如预期的。但是,在第二个请求中,用户对象从会话中消失了,当我访问注入该页面的页面时,我会得到例外。
我的问题是何时出现该组件:
- 在自定义组件的每一种方法之后(即使它都不包含
user
)? - 在包含用户组件的参考的每种方法之后?
关于 required
属性:
- 如果出现后,用户对象会评估
null
, ,是否已经从会话范围中删除已经出现的用户?
干杯!
解决方案
对于您的第一个问题:每种方法都将在 CustomIdentity
. 。查看相应的接缝源代码 org.jboss.seam.core.BijectionInterceptor
(接缝2.2.0)。双放置发生在组件,即,班级,级别。
到您的第二个问题:每次请求 CustomIdentity
完成,您的字段价值被列出。如果您使用爆发属性 require=false
, , 这 user
目前在您的会话上下文中大声求出的可能会被 null
.
不隶属于 StackOverflow