Jsf 会话结束时销毁视图范围的bean

Jsf 会话结束时销毁视图范围的bean,jsf,jakarta-ee,jsf-2,glassfish,view-scope,Jsf,Jakarta Ee,Jsf 2,Glassfish,View Scope,我的问题与此相关(可能还有其他问题): 如前所述,在导航时销毁视图范围的bean并没有简单的解决方案,在会话到期时似乎也是如此 发布JSF视图范围bean(调用@PreDestroy方法)的一种非常简单的方法是什么,或者更具体地说,在会话到期时是什么 我在GlassFish 3.1.2上使用Java EE 6和Mojarra 2.1.x。创建一个@SessionScopedbean来保存资源(在一些集合/数组中?),并将其注入@ViewScopedbean,然后依赖会话范围bean的@PreD

我的问题与此相关(可能还有其他问题):

如前所述,在导航时销毁视图范围的bean并没有简单的解决方案,在会话到期时似乎也是如此

发布JSF视图范围bean(调用
@PreDestroy
方法)的一种非常简单的方法是什么,或者更具体地说,在会话到期时是什么


我在GlassFish 3.1.2上使用Java EE 6和Mojarra 2.1.x。

创建一个
@SessionScoped
bean来保存资源(在一些集合/数组中?),并将其注入
@ViewScoped
bean,然后依赖会话范围bean的
@PreDestroy


诚然,这种方式资源的寿命比您想要的稍长,但这是您可以获得的最简单、最可靠的解决方案。如果您想将
@PreDestroy
保留在视图范围的bean中,那么您需要以某种方式确保最终用户总是通过HTTP POST请求在这个视图范围的bean上执行导航。您无法可靠地保证这一点(最终用户的PC可能会崩溃等)。

销毁bean的具体原因是什么?清除操作,如删除用户午餐(会话到期)前上载的临时文件(附件)。