0

我有一个使用 Deltaspike 的 CDI 应用程序,它使用非常有用的@WindowScoped注释来支持多个选项卡。应用场景如下:

  1. 用户从列表中选择一个项目并单击“编辑”。
  2. 用户针对对象进行身份验证。
  3. 正在编辑的对象的 id 和经过身份验证的用户的用户名存储在窗口范围内,并且可用于系统编辑部分中的所有页面。
  4. 当用户完成访问此对象时,他们单击完成,并且与此对象的会话关闭(@WindowScopedbean 被清除)。

如果用户打开一个新选项卡,然后选择一个新对象进行编辑,那么一切正常,因为 ID 和身份验证详细信息是针对新@WindowScoped对象存储的。

但是,由于有多个编辑页面,用户也可以右键单击并在新选项卡中打开链接。然后这会失败,因为新@WindowScopedbean 对创建它的上下文一无所知(基本上是前一个会话的对象 ID 和用户名)。

有没有办法@WindowScoped用来访问以前的窗口范围对象?或者是否有一种通用的方法可以在窗口范围的 bean 之间共享信息?

感谢您的任何建议!

4

0 回答 0