我需要跟踪登录到我的应用程序的用户,我正在尝试使用JSF2的applicationMap来完成此操作。所以我创建了一个用户列表,在我的登录bean中,我通过这样做添加(删除)用户:
FacesContext.getCurrentInstance().getExternalContext().getApplicationMap().put("usersList", usersList);
在usersTracking.xhtml页面的支持bean中,我尝试检索这样的列表:
AppllicationMap map = (ApplicationMap)FacesContext.getCurrentInstance().getExternalContext().getApplicationMap();
List users = (LinkedList)map.get("usersList");
但“用户”总是为空。我究竟做错了什么?
答案 0 :(得分:3)
只需将其设置为应用程序范围的托管bean。
@ManagedBean(eager=true)
@ApplicationScoped
public class Users {
private List<User> list;
public Users() {
list = new LinkedList<User>();
}
public List<User> getList() {
return list;
}
}
通过@ManagedProperty
:
@ManagedBean
@ViewScoped
public class ArbitraryBean {
@ManagedProperty("#{users}")
private Users users;
// ...
}