Jsf @当PrimeExceptionHandler处理异常时重新创建SessionScoped托管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

我有一个会话范围的Bean:

@SessionScoped
public class UserSession {
    User user;
}
在登录视图期间,我抛出一个SecurityException:

throw new java.lang.SecurityException("You need to login!");
它将被
web.xml
重定向到
SelectUserBean

现在有一件奇怪的事情我真的不明白:在我抛出
SecurityException
之前,
UserSession
有id
UserSession@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>