我对使用JSF 1.2 / Richfaces 3.3.3
的Seam 2.2.2 Web App有疑问要处理会话超时,我在pages.xml中使用以下内容......
<exception class="javax.faces.application.ViewExpiredException" log="false">
<end-conversation/>
<redirect />
</exception>
因此,如果用户未登录,则会刷新页面,如果他们已登录,则会将其退回到我们的登录页面(由于其他重定向规则)
还在web.xml中配置
<context-param>
<param-name>facelets.DEVELOPMENT</param-name>
<param-value>false</param-value>
</context-param>
<context-param>
<param-name>javax.faces.DEFAULT_SUFFIX</param-name>
<param-value>.xhtml</param-value>
</context-param>
<context-param>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>server</param-value>
</context-param>
<context-param>
<param-name>org.ajax4jsf.VIEW_HANDLERS</param-name>
<param-value>com.sun.facelets.FaceletViewHandler</param-value>
</context-param>
<context-param>
<param-name>org.jboss.jbossfaces.JSF_CONFIG_NAME</param-name>
<param-value>Mojarra-1.2</param-value>
</context-param>
这工作正常并完成工作,但我遇到的问题是如果会话到期并且用户尝试执行ajax更新(例如,单击a4j:commandButton / a4j:commandLink),则抛出以下异常:< / p>
2014-01-22 21:46:23,326 SEVERE [javax.enterprise.resource.webcontainer.jsf.lifecycle] (ajp-0.0.0.0-8009-11) JSF1054: (Phase ID: RESTORE_VIEW 1, View ID: ) Exception thrown during phase execution: javax.faces.event.PhaseEvent[source=com.sun.faces.lifecycle.LifecycleImpl@10fd6ac]
用户仍然被重定向,所以他们实际上看不到任何不好的事情,但我仍然记录了SEVERE错误。我知道我可以压制错误,但我想知道是否有办法抓住它/防止它被抛出。
有什么建议吗?
由于