1

私の JSF 2 では、フォームベースの認証を使用しています。web.xml には、単一の login.html エントリが含まれています。

<login-config>
    <auth-method>FORM</auth-method>
    <realm-name>testDB</realm-name>
    <form-login-config>
        <form-login-page>/login.html</form-login-page>
        <form-error-page>/loginError.html</form-error-page>
    </form-login-config>
</login-config>

Web アプリには、携帯電話をサポートするためのメイン ページ (/app/index.html) と /app/mobile/index.html があります。

ターゲット URL に基づいて、login.html で異なるレイアウトを使用したいと考えています。

  • ターゲット URL が /app/mobile/index.html の場合、小さいサイズのブラウザ用に最適化されたログイン ページを使用します

  • それ以外の場合は、デフォルトのログイン ページを使用します

ログインページ (login.html) ページは JSF ページです。

おそらくFacesContextの情報を使用して、JSFでログインページ内の「宛先」ページを取得することは可能ですか?

4

1 に答える 1

0

https://stackoverflow.com/a/5820573/80901で宛先リクエスト URI を取得する方法を見つけました。

表現

#{requestScope['javax.servlet.forward.request_uri']}

値 /app/index.html または /app/mobile/index.html を含む

コード例:

    <h:panelGroup rendered="#{requestScope['javax.servlet.forward.request_uri'] eq '/app/mobile/index.html'}">
        <h2>
            Welcome to the MOBILE login page.
        </h2>
    </h:panelGroup>
    <h:panelGroup rendered="#{requestScope['javax.servlet.forward.request_uri'] ne '/app/mobile/index.html'}">
        <h2>
            Welcome to the NON-MOBILE login page.
        </h2>
    </h:panelGroup>
于 2012-08-15T08:27:28.520 に答える