如何在JSF 2中处理会话到期和ViewExpiredException?
考虑以下情况。 在会话超时(过期)之后,我单击一个JSF表单的提交button。 浏览器显示一些exception消息:
ViewExpiredException:视图上下文无法恢复
我想要做的是在会话过期后自动redirect到网站的主页。 这是什么机制? 任何帮助将非常感激。
要处理exception,只要用户在HTTP会话过期并且JSF视图状态保存方法设置为server
时调用页面上的同步POST请求,请将<error-page>
到捕获JSF的web.xml
中ViewExpiredException
并显示主页。
<error-page> <exception-type>javax.faces.application.ViewExpiredException</exception-type> <location>/home.xhtml</location> </error-page>
为了处理asynchronous(ajax)请求上的exception,您需要实现一个自定义的ExceptionHandler
, 并在JSF / PrimeFaces ajax请求的Session timeout和ViewExpiredException处理中得到回应
也可以看看:
- javax.faces.application.ViewExpiredException:无法恢复视图