Jsf 2 JSF页面重定向

Jsf 2 JSF页面重定向,jsf-2,Jsf 2,我们在weblogic-10.3.4中部署了一个JSF2.0应用程序,我们需要给用户一个通用url,比如(http://web/apply?7777 ) . 当用户访问此页面时,根据查询字符串值,用户将被重新定向到特定于客户端的页面,该页面可以是10个不同页面中的一个 因此,一种方法是使用apply.jsf页面,该页面具有预呈现事件,它将根据查询字符串将用户重新定向到不同的页面 还有其他更好的方法吗?不允许使用apply.xhtml 注意:在web.xml中,我们定义了pageNotFound

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

因此,一种方法是使用apply.jsf页面,该页面具有预呈现事件,它将根据查询字符串将用户重新定向到不同的页面

还有其他更好的方法吗?不允许使用apply.xhtml

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

您可以使用一个简单的

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

    // ...
}

您的输入,请问我如何从Faces上下文访问托管bean中的值以确定servlet筛选器中的重定向url?筛选器中根本没有
FacesContext
。只需将它们作为所需范围的属性以低级ServletAPI的方式获取即可。同样如此,会话范围的JSF托管bean可以通过
SessionBean SessionBean=(SessionBean)request.getSession().getAttribute(“SessionBean”)。谢谢你,巴卢斯克。我会试试的。。。如果我有Servlet2.x,我可以使用它吗?JSF运行在ServletAPI之上。没有ServletAPI,JSF甚至无法工作。