Jsf 如何使用JavaServer Faces根据目标URL修改登录页面?

Jsf 如何使用JavaServer Faces根据目标URL修改登录页面?,jsf,authentication,jakarta-ee,jsf-2,Jsf,Authentication,Jakarta Ee,Jsf 2,在我的JSF2中,我使用基于表单的身份验证。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

在我的JSF2中,我使用基于表单的身份验证。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>

类型
测试数据库
/login.html
/loginError.html
该web应用程序有一个主页(/app/index.html)和一个支持移动电话的/app/mobile/index.html

我想根据目标URL在login.html中使用不同的布局

  • 如果目标URL为/app/mobile/index.html,请使用针对小浏览器大小进行优化的登录页面

  • 否则,请使用默认登录页面

登录页面(login.html)是一个JSF页面


是否可以使用JSF在登录页面中获取“destination”页面,或者使用FacesContext中的信息?

我在

表情

#{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>

欢迎来到手机登录页面。
欢迎来到非移动登录页面。