我有接缝会话划分的组件,自定义,它覆盖了标准的接缝身份(也是会话划分)。扩展的自定义具有财产

@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.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top