我有一个Session Scoped Bean:
@SessionScoped
public class UserSession {
User user;
}
在我的LoginView期间,我抛出一个SecurityException:
throw new java.lang.SecurityException("You need to login!");
将web.xml
重定向到SelectUserBean
现在这是我真正不理解的奇怪事情:在我抛出SecurityException
之前,UserSession
有id UserSession@123456
和用户Foo
。现在在SelectUserBean
中,UserSession
有一个新ID,用户为null
。
在我的faces-config
我有Primefaces异常处理:
<el-resolver>
org.primefaces.application.exceptionhandler.PrimeExceptionHandlerELResolver
</el-resolver>
和
<factory>
<exception-handler-factory>
org.primefaces.application.exceptionhandler.PrimeExceptionHandlerFactory
</exception-handler-factory>
</factory>
删除后,它按预期工作。关于这个的任何想法?
为什么会这样?我想因为它是一个SessionScoped bean,它必须是相同的值。
答案 0 :(得分:0)
链中的某些东西创建了一个新会话, ergo 你有一个新的会话bean。