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 页面。

是否可以使用 JSF 在登录页面中获取“目标”页面,也许使用 FacesContext 中的信息?

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 回答