每个用户JSF一个会话

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

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

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

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

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