在我的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>
该网络应用程序有一个主页面(/app/index.html)和一个/app/mobile/index.html来支持手机。
我想在login.html中根据目标网址使用不同的布局。
如果目标网址为/app/mobile/index.html,请使用针对较小浏览器尺寸优化的登录页面
否则使用默认登录页面
登录页面(login.html)页面是一个JSF页面。
是否可以使用JSF在登录页面中获取“目标”页面,可能使用FacesContext中的信息?
答案 0 :(得分: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>