用户成功登录后,我通常会将一些信息放在会话对象上。然后我会使用一个应用于所有页面的过滤器来检查是否有用户登录。
如何使用JSF 2.0实现这样的目标?
答案 0 :(得分:1)
您可以将所有需要登录的页面放到子文件夹中,并将login.xhtml保留在根目录下。
您可以将您的用户保持在会话范围内,并且可以使用名为identity的类 然后将这些声明添加到pages.xml。
因此,如果用户登录,您无需在任何地方进行检查。
<page view-id="*">
<navigation>
<rule if-outcome="home">
<redirect view-id="/base/home.xhtml"/>
</rule>
</navigation>
<navigation from-action="#{identity.logout}">
<rule if="#{not identity.loggedIn}">
<redirect view-id="/login.xhtml"/>
</rule>
</navigation>
</page>
<page view-id="/modul*" login-required="true"></page>
<page view-id="/popup*" login-required="true"></page>