48

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

ViewExpiredException:无法恢复视图上下文

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

4

1 回答 1

92

要在 HTTP 会话已过期且 JSF 视图状态保存方法设置为时在页面上调用同步 POST 请求时处理异常server,请添加一个<error-page>捕获web.xmlJSFViewExpiredException并显示主页的 。

<error-page>
    <exception-type>javax.faces.application.ViewExpiredException</exception-type>
    <location>/home.xhtml</location>
</error-page>

要同时处理异步 (ajax) 请求的异常,您需要在 JSF/PrimeFaces ajax 请求上实现会话超时和 ViewExpiredException 处理ExceptionHandler中回答的自定义

也可以看看:

于 2011-02-14T13:44:53.853 回答