2010-08-13 71 views
2

我使用以下代碼在登錄時重定向到我的主頁...現在我想更進一步,並根據用戶類型添加邏輯,將其重定向到不同的頁面。根據用戶類型呈現主頁

例如:如果用戶類型是員工,那麼我應該重定向到employeehome.xhtml等等......這可能嗎?

<page xmlns="http://jboss.com/products/seam/pages" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://jboss.com/products/seam/pages http://jboss.com/products/seam/pages-2.2.xsd"> 

<navigation from-action="#{identity.login}"> 
    <rule if="#{identity.loggedIn}"> 
     <redirect view-id="/Home.xhtml" /> 
    </rule> 
</navigation> 

回答

2

我假設你有一個login.xhtml頁的這。

用戶登錄之後,你可以創建一個包含一些導航規則login.page.xml頁面。例如:

 <navigation from-action='#{identity.login}'> 
     <rule if="#{identity.loggedIn and s:hasRole('management')}"> 
      <redirect view-id="/management/home.xhtml"/> 
     </rule> 
     <rule if="#{identity.loggedIn and s:hasRole('upload')}"> 
      <redirect view-id="/secure/upload.xhtml"/> 
     </rule> 
     <rule if="#{identity.loggedIn and (s:hasRole('sss') or s:hasRole('sssmgmnt'))}"> 
      <redirect view-id="/secure/sss/home.xhtml"/> 
     </rule> 
     <rule if="#{identity.loggedIn}"> 
      <redirect view-id="/secure/home.xhtml"/> 
     </rule> 
    </navigation> 

接下來,您可以限制頁面,因此只有具有正確角色的用戶才能訪問該頁面。在我的pages.xml中,我有以下幾行:

<page view-id="/secure/upload.xhtml" login-required="true"> 
    <restrict>#{s:hasRole('upload')}</restrict> 
</page>