2

为了在会话中保留有关用户的基本信息(安全角色、个人数据等),我创建了一个 AppSession bean,我想知道在每个支持 bean 中注入一个该会话 bean 的引用。

例如,而不是在请求范围的 bean 中:

@ManagedBean
@RequestScoped
public class MyRequestBean {
     @ManagedProperty("#{appSession.user}")
     private User user;

     @ManagedProperty("#{appSession.roles}")
     private Roles[] roles;    
}

我想要这样的东西...

@ManagedBean
@RequestScoped
public class MyRequestBean {
     @ManagedProperty("#{appSession}")
     private AppSession appSession;
}

...并使用appSession检索用户和角色数据。

您对此有何看法,这里有一些不好的做法吗?

PS:对不起,我不是英语母语者

4

1 回答 1

2

我想知道在每个支持 bean 中注入该会话 bean 的引用是否是一种不好的做法。

它不是。它可以完成您想要的工作。只有其他方法是通过ExternalContext#getSessionMap()or手动抓取它Application#evaluateExpressionGet()。但这些方式不是声明性的,因此是一种“不太好的”做法。

于 2013-08-23T11:45:36.397 回答