请考虑以下情形。 在会话超时(过期)后,我点击了JSF表单的提交按钮。 浏览器显示一些异常消息:
ViewExpiredException:无法恢复视图上下文
我想要做的是,在会话过期后自动重定向到网站的主页。这样做的机制是什么?任何帮助将不胜感激。
答案 0 :(得分:91)
要在HTTP会话过期并且JSF视图状态保存方法设置为server
时用户在页面上调用同步POST请求时处理异常,请向<error-page>
添加web.xml
<error-page>
<exception-type>javax.faces.application.ViewExpiredException</exception-type>
<location>/home.xhtml</location>
</error-page>
捕获JSF ViewExpiredException
并显示主页。
ExceptionHandler
要处理异步(ajax)请求的异常,您需要实现Session timeout and ViewExpiredException handling on JSF/PrimeFaces ajax request
中回答的自定义{{1}}