我想要的是每个选项卡/窗口不同的会话 bean。我知道会话 bean 有效,但我想为新选项卡创建新的会话 bean。以下是我想要新会话 bean 的原因。
假设在 page1,我有用户列表。单击用户时,我会在 page2 中获取用户的详细信息。
现在假设我有两个标签。在这两个页面中,我都有 page1.xhtml。在 tab1 上,我单击了用户 A。我在 page2.xhtml 上看到了用户 A 的详细信息现在我来到 tab2。在 tab2 上,我单击了用户 B。我在 page2.xhtml 上看到了用户 B 的详细信息 现在问题就在这里。现在我回到 tab1 并刷新 page2.xhtml,我看到了用户 B 的详细信息,这是不正确的,因为之前我看到的是用户 A 的详细信息。
因此,我想要的是每个新选项卡/窗口的新会话bean。
有没有办法为每个选项卡/窗口创建新的 sessionbean?也许在 primefaces 或 icefaces 中?
我认为 ViewScope 是解决方案,但事实并非如此。参考BalusC 文章。
@ViewScoped:只要您与 浏览器 window/tab 中的同一个 JSF 视图交互,这个范围内的 bean就会存在。它是根据 HTTP 请求创建的,并在您回发到不同的视图后被销毁。
对于 SessionBean,我指的是 Java/JSF 托管会话托管 bean,而不是浏览器会话(历史)。