我有一个带有两个@ViewAccessScoped
Bean 和两个页面/视图的 JSF 应用程序,一个用于搜索的 Bean,在 Bean 上了解详细信息。详细信息 Bean 引用了 @ViewAccessScoped,因此当我返回搜索时数据可用。没有其他 CDI 参考。WindowRenderMode 是ClientWindowRenderMode.CLIENTWINDOW
,无需进一步配置。
到目前为止,这工作得很好。如果我转到另一个页面或注销,Beans 将不受范围限制。我遇到的一个问题:当我在新的浏览器选项卡中打开我的详细信息页面时,会创建两个新的 Bean,这是预期的行为。但是当我关闭选项卡时,Beans 仍然存在。I guess the Server doesn't get notified when a tab get's closed.
- deltaspike 中是否有内置解决方案可用于检测选项卡 clsoes?
- @ViewAccessScoped 的 Bean 是否有超时(在会话超时旁边)?
- 如果没有内置解决方案:如何以编程方式取消 Bean 的范围?最好取消范围连接到该选项卡的所有 Bean(=相同的 Window-ID)(我会使用 JavaScript 检测关闭我自己并在关闭时调用 Bean-Method)