我的环境是:NetBeans7.2.1、GlassFish3.1、JSF2 和 Weld 1.1.0。
在其中一种情况下(会话/对话/查看超时),我正在尝试重定向到错误页面。
从我读到的有很多选择:
<error-page>
在内部使用web.xml
(但由于某种原因,当我使用location
页面error.xhtml
时它不起作用,只能使用 servlet - 就这个问题提出了这个问题)。在此示例中使用
<exception-handler-factory>
insidefaces-config.xml
which 将使用CustomExceptionHandler
like 。在此示例中使用
@WebFilter
类似。
我的主要问题是,在我重定向到error.xhtml
页面后,我想禁用返回到以前的页面。所以即使用户点击后退按钮,他仍然会被重定向到错误页面。
当出现异常时,我能够重定向到错误页面,但无法清除缓存,因此当用户返回时,他仍然可以看到上一页的内容。
我不完全了解上述 3 个选项之间的差异,以及每个选项的确切作用。
有人可以解释一下吗?
有什么区别
NavigationHandler nav = fc.getApplication().getNavigationHandler();
nav.handleNavigation(fc, null, "/error");
facesContext.renderResponse();
和
((HttpServletResponse)response).sendRedirect("yourCustomJSF.jsf");
?
如何通过重定向和清除缓存来处理这些异常,以便用户无法看到上一页?
提前致谢。