我的web应用程序有一个在所有页面中使用的模板。我想在模板中创建一个小标签(所以它在任何地方都是可见的)来显示用户的电子邮件,如果它当前登录。
我认为最好的方法是直接查看它是否存在于会话中,所以我是这样创建标签的:<h:outputLabel id="usernameLabel"
value="#{FacesContext.getCurrentInstance().getExternalContext()
.getSessionMap().get("userRole")}" />
代码语法不正确。我该如何用恰当的方式来写它来实现我的目标?你认为这种做法正确吗?
更好的方法是将userBean存储在包含用户信息的会话中。
然后
#{userBean.email}
或者您可以使用jsp el
直接从会话中添加属性${userRole}
我更喜欢第一种方法
成功登录后,设置ManagedBean中经常需要的内容,例如
@ManagedBean
@SessionScoped
public class CurrentUserInfo{
private String userName;
private String firstName;
private String lastName;
//and some other like DOB and etc..
//+accessor methods
}
这将是活的,并且可以通过会话访问