Jsf @当PrimeExceptionHandler处理异常时重新创建SessionScoped托管bean
我有一个会话范围的Bean:Jsf @当PrimeExceptionHandler处理异常时重新创建SessionScoped托管bean,jsf,primefaces,session-scope,exceptionhandler,Jsf,Primefaces,Session Scope,Exceptionhandler,我有一个会话范围的Bean: @SessionScoped public class UserSession { User user; } 在登录视图期间,我抛出一个SecurityException: throw new java.lang.SecurityException("You need to login!"); 它将被web.xml重定向到SelectUserBean 现在有一件奇怪的事情我真的不明白:在我抛出SecurityException之前,UserSession
@SessionScoped
public class UserSession {
User user;
}
在登录视图期间,我抛出一个SecurityException:
throw new java.lang.SecurityException("You need to login!");
它将被web.xml
重定向到SelectUserBean
现在有一件奇怪的事情我真的不明白:在我抛出SecurityException
之前,UserSession
有idUserSession@123456
和用户Foo
。现在在SelectUserBean
中,UserSession
有一个新id,用户为null
在我的faces配置中
我有Primefaces异常处理:
<el-resolver>
org.primefaces.application.exceptionhandler.PrimeExceptionHandlerELResolver
</el-resolver>
org.primefaces.application.exceptionhandler.PrimeExceptionHandlerELResolver
及
org.primefaces.application.exceptionhandler.PrimeExceptionHandlerFactory
卸下后,它将按预期工作。有什么想法吗
为什么会发生这种情况?我想既然它是一个SessionScoped bean,那么它的值一定是相同的。链中的某个东西创建了一个新会话,因此您得到了一个新会话bean
<factory>
<exception-handler-factory>
org.primefaces.application.exceptionhandler.PrimeExceptionHandlerFactory
</exception-handler-factory>
</factory>