在应用程序中跟踪用户

时间:2012-02-20 09:36:07

标签: jsf-2

我需要跟踪登录到我的应用程序的用户,我正在尝试使用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");

但“用户”总是为空。我究竟做错了什么?

1 个答案:

答案 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

,您可以在每个任意托管bean中注入和访问它
@ManagedBean
@ViewScoped
public class ArbitraryBean {

    @ManagedProperty("#{users}")
    private Users users;

    // ...
}