正如我在this topic中写的那样,我需要在用户关闭或更改页面时调用某些操作。我以为我可以在我的视图作用域中使用@PreDestroy
,但它永远不会被调用(即使会话过期)。这是一个错误吗?我使用Glassfish 3.1.2。
任何其他建议如何在用户离开页面时调用bean方法? javascript window.onunload
好主意吗?
答案 0 :(得分:0)
即使bean是视图作用域,容器也有责任决定何时收集和销毁未使用的资源。
用于定义范围的注释表示托管bean必须存活多长时间,但是不能保证它们何时会被销毁。
正如您所建议的,JavaScript可以解决您的问题。另见这个答案:How to detect unsaved data in form when user leaves the page?