【问题标题】:JSF2.0 PostConstructApplicationEvent managed bean is nullJSF 2.0 PostConstruct ApplicationEvent 托管 bean 为空
【发布时间】:2011-04-26 17:45:32
【问题描述】:

我们在Tomcat6.0中有JSF2.0,需要在Web服务器启动时初始化一个ApplicationScope Bean。
我尝试使用 PostConstructApplicationEvent processEvent 方法初始化 Bean ,但 faces-config.xml 中的托管 bean 返回 null。

有没有其他更好的方法可以在启动后实例化 bean?

【问题讨论】:

    标签: jsf jsf-2


    【解决方案1】:

    删除 any 与 bean 相关的 faces-config.xml 声明(否则它们将覆盖 JSF 2.0 注释),然后使用 @ManagedBean(eager=true) 注释 bean,如下所示:

    @ManagedBean(eager=true)
    @ApplicationScoped
    public class Bean {
        // ...
    }
    

    这样,bean 将始终在 JSF webapp 启动时被实例化,而无需查看任何页面。然后,您可以在 bean 的构造函数和/或 @PostConstruct 中执行初始化工作。

    【讨论】:

    • 我只在 @ManagedBean(eager=true) 上有它,但是当我在 PostConstructAPplicationEvent 中访问它时,它是空的。调用 PostConstruct 时没有初始化吗?
    • 当我进入 PostConstruct 时,看起来 appMap 没有带有 applicationsscope 的 Bean
    猜你喜欢
    • 2012-06-30
    • 2014-06-12
    • 2012-07-31
    • 2016-05-09
    • 1970-01-01
    • 2011-12-05
    • 1970-01-01
    • 2023-03-05
    • 2013-08-20
    相关资源
    最近更新 更多