3

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

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

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

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

4

1 回答 1

1

您可以为此使用一个简单的servlet 过滤器

@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);
        }
    }

    // ...
}
于 2012-07-06T21:04:08.957 回答