【问题标题】:Java EE 6 - @PreDestroy in ViewScoped & Session beans never calledJava EE 6 - ViewScoped 和会话 bean 中的 @PreDestroy 从未调用
【发布时间】:2012-10-01 08:19:53
【问题描述】:

正如我在this topic 中所写,当用户关闭或更改页面时,我需要调用一些操作。我以为我可以在我的视图范围 bean 中使用@PreDestroy,但它永远不会被调用(即使会话到期)。这是一个错误吗?我使用 Glassfish 3.1.2。

用户离开页面时如何调用 bean 方法有什么其他建议吗? javascript window.onunload 是个好主意吗?

【问题讨论】:

    标签: java jsf jakarta-ee view-scope


    【解决方案1】:

    即使 bean 是视图范围的,容器也有责任决定何时收集和销毁未使用的资源。

    用于定义范围的注释指示托管 bean 必须存活多长时间,但您无法保证它们何时会被销毁。

    正如您所建议的,JavaScript 可以解决您的问题。另请参阅此答案:How to detect unsaved data in form when user leaves the page?

    【讨论】:

      猜你喜欢
      • 2023-03-23
      • 2011-09-16
      • 1970-01-01
      • 2015-01-21
      • 2011-07-06
      • 2019-04-10
      • 2013-01-22
      • 2012-07-15
      • 1970-01-01
      相关资源
      最近更新 更多