在JSF页面中按下浏览器的后退按钮后,避免重新提交表单消息

时间:2017-07-11 14:24:34

标签: java jsf web-applications

大家。

在我的JSF应用程序中,我使用commandButtons提交表单,处理托管bean中的数据以及显示结果页面。当用户处于这些结果页面之一并按下后退按钮时,浏览器会显示一条消息,要求重新提交表单。有什么方法可以避免这种情况吗?我已搜索但尚未找到解决方案。

在应用程序中,有一个过滤器类可防止在用户注销后返回页面。这种方法与上述问题有什么关系吗?

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        LoginController loginController = (LoginController) ((HttpServletRequest) request).getSession().getAttribute("loginController");
        HttpServletResponse  res = (HttpServletResponse) response;
        res.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1.
        res.setHeader("Pragma", "no-cache"); // HTTP 1.0.
        res.setDateHeader("Expires", 0); // Proxies.
        //System.out.println("prevent caching");
        if(loginController == null || !loginController.isLoggedIn()){
            String contextPath = ((HttpServletRequest) request).getContextPath();
            ((HttpServletResponse) res).sendRedirect(contextPath + "/index.xhtml");
        }
        else {
            chain.doFilter(request, res);
        }
    }

我感谢任何帮助。

0 个答案:

没有答案