3

weblogic-10.3.4 にデプロイされた JSF2.0 アプリケーションがあり、たとえば (http://web/apply?7777 ) などの一般的な URL をユーザーに提供する必要があります。ユーザーがこのページにアクセスすると、クエリ文字列の値に基づいて、ユーザーはクライアント固有のページにリダイレクトされます。このページは、10 個の異なるページのいずれかになります。

したがって、1 つのアプローチは、クエリ文字列に基づいてユーザーを別のページにリダイレクトする pre-render イベントを持つ apply.jsf ページを用意することです。

他のより良いアプローチはありますか?apply.xhtml はありません。

注: web.xml では、ページが見つからない場合に備えて pageNotFound.xhtml を定義しました。

4

1 に答える 1

1

これには、単純なサーブレット フィルターを使用できます。

@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 に答える