2011-04-20 40 views
0

我的web應用程序有一個用於所有頁面的模板。我想在該模板中創建一個小標籤(以便隨處可見)顯示用戶的電子郵件,如果它當前已登錄。登錄時顯示用戶電子郵件(JSF 2.0)

我認爲最好的方法是直接查看它是否存在於會話中,所以這是我如何創建標籤:

<h:outputLabel id="usernameLabel" 
       value="#{FacesContext.getCurrentInstance().getExternalContext() 
         .getSessionMap().get("userRole")}" /> 

該代碼在語法上不正確。我怎樣才能以適當的方式寫出來實現我的目標?你認爲這種方法是正確的嗎?

回答

5

更好的方法是將userBean存儲在包含用戶信息的會話中。

然後

#{userBean.email} 

或者,你可以從會話中使用JSP EL

${userRole} 

我寧願第一種方法

更新

成功登錄後直接屬性,經常設置通過會話

+0

在ManagedBean需要例如

@ManagedBean @SessionScoped public class CurrentUserInfo{ private String userName; private String firstName; private String lastName; //and some other like DOB and etc.. //+accessor methods } 

這將是活着的和可訪問創建一個會話範圍的bean,並給它取名「的UserBean」。然後添加一個字段'電子郵件'以及一個getter並在登錄時填寫該字段。 – Thomas 2011-04-20 08:01:09

+0

它工作很好對不起,我感到困惑,我不需要一個託管bean,它是存儲在會話中的關鍵我在打電話:) 我使用第二種方法,不需要管理bean。 – sfrj 2011-04-20 08:02:40

+0

@Thomas添加了詳細信息 – 2011-04-20 08:03:10

相關問題