我有Seam 会话范围的组件CustomIdentity,它覆盖了标准的Seam Identity(也是会话范围的)。扩展的 CustomIdentity 有一个属性
@Out(required=false, scope=ScopeType.SESSION)private User user
在覆盖的 login() 中,我定义了一个 User 对象,其中填充了来自 HttpServletRequest 的 Principal 的信息。在应用程序的第一个请求中,User 对象在 SESSION 范围内按预期弹出。但是,在第二个请求中,User 对象已经从 Session 中消失了,当我访问一个注入它的页面时,我得到了一个异常。
我的问题是何时准确地喷射组件:
- 在 CustomIdentity 组件的每一个方法之后(即使它不包含对 的引用
user
)? - 在每个包含 User 组件引用的方法之后?
关于required
属性:
- 如果在弹出时 User 对象的计算结果为
null
,那么已经弹出的 User 是否将从 Session 范围中删除?
干杯!