我们在weblogic-10.3.4中部署了一个JSF2.0应用程序,我们要求给用户提供通用URL,比如说(http:// web / apply?7777)。当用户访问此页面时,基于查询字符串值,用户将被重定向到客户特定页面,该页面可以是10个不同页面之一。
所以一种方法是有一个apply.jsf页面,它有一个预渲染事件,它会根据查询字符串将用户重定向到不同的页面,
还有其他更好的方法吗?没有apply.xhtml。
注意:在web.xml中,如果找不到页面,我们定义了pageNotFound.xhtml。
答案 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);
}
}
// ...
}