销毁视图作用域bean会话结束时(Destroying view-scoped beans when

2019-08-01 23:28发布

我的问题是与此相关的一个(也可能是其他人):

@PreDestroy从来没有所谓的@ViewScoped

如前所述那里,没有平凡的解决方案要么在导航摧毁视图作用域bean和相同的似乎能当会话过期真正的。

什么将一个不平凡的方式来释放(调用@PreDestroy方法)JSF视图作用域bean的样子,或者更具体地说,一旦会话过期?

我使用的Java EE 6和GlassFish上3.1.2钻嘴鱼科的2.1.x。

Answer 1:

创建@SessionScoped bean保存资源(在某些集合/数组?)和它注入@ViewScoped bean,然后依靠@PreDestroy会话的作用域bean。

诚然,这样的资源活一点时间比你想要的,但是这是最简单,可靠的解决方案,你可以得到。 如果你想保持@PreDestroy中范围的bean的观点,那么你需要以某种方式确保终端用户始终由HTTP POST请求的正是这种观点作用域的bean进行导航。 你不能可靠地保证(终端用户的PC可能会崩溃等)。



文章来源: Destroying view-scoped beans when session ends