如何在JSF 2中处理会话过期和ViewExpiredException?

时间:2011-02-14 13:11:24

标签: jsf jsf-2 session-timeout viewexpiredexception

请考虑以下情形。 在会话超时(过期)后,我点击了JSF表单的提交按钮。 浏览器显示一些异常消息:

  

ViewExpiredException:无法恢复视图上下文

我想要做的是,在会话过期后自动重定向到网站的主页。这样做的机制是什么?任何帮助将不胜感激。

1 个答案:

答案 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}}

另见: