JSF页面重定向

时间:2012-07-06 18:25:49

标签: jsf-2

我们在weblogic-10.3.4中部署了一个JSF2.0应用程序,我们要求给用户提供通用URL,比如说(http:// web / apply?7777)。当用户访问此页面时,基于查询字符串值,用户将被重定向到客户特定页面,该页面可以是10个不同页面之一。

所以一种方法是有一个apply.jsf页面,它有一个预渲染事件,它会根据查询字符串将用户重定向到不同的页面,

还有其他更好的方法吗?没有apply.xhtml。

注意:在web.xml中,如果找不到页面,我们定义了pageNotFound.xhtml。

1 个答案:

答案 0 :(得分:1)

您可以使用简单的servlet filter

@WebFilter("/apply")
public class ApplyFilter implements Filter {

    @Override
    public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
        HttpServletRequest request = (HttpServletRequest) req;
        HttpServletResponse response = (HttpServletResponse) res;

        String queryString = request.getQueryString();
        String redirectURL = determineItBasedOnQueryString(queryString);

        if (redirectURL != null) {
            response.sendRedirect(redirectURL);
        } else {
            response.sendError(HttpServletResponse.SC_NOT_FOUND);
        }
    }

    // ...
}