每个用户JSF一个会话

时间:2013-02-02 11:09:36

标签: java jsf session


我刚开始学习JSF,我想知道这个问题。 我有16个复选框。当我打开页面并且我的兄弟也打开它时,似乎我们有相同的会话。当我点击其中一个复选框时,我的兄弟浏览器也会检查它。 选中的复选框保存在private ArrayList<String> selectedBoes = new ArrayList<String>();中 我的ManagedBean是SessionScoped。

为什么会发生这种情况以及如何避免它?

1 个答案:

答案 0 :(得分:2)

  

我的兄弟会话ID是cdbbb126e96060ddb924b9d5e591。我的是cd9a5c4180bd9dfef0ec8db2ac4d

然后唯一可能的原因是你实际没有将它们存储在会话范围内。症状表明您要么将它们存储在应用程序范围中,要么将其声明为static(因此问题中的代码根本不代表实际代码;注释中的代码表明或者更少或更多,你使用了不同的属性名称,显然你试图从头顶键入它,你不应该这样做,你应该复制真正的代码。)

请注意,当您使用CDI的@Named而不是JSF的@ManagedBean时,它将默认为应用程序范围,除非使用javax.enterprise.context范围注释另行指定。因此,如果您使用的是JSF不支持的JSF自己的javax.faces.bean.SessionScoped注释,那么它仍将在应用程序范围内。