我正在寻找一种替代JSF 2.2中@ManagedBean(eager=true)注释的解决方案。

我很好地注意到了提案such as,该提案允许在应用程序启动时执行代码。

但是,我需要访问FacesContext,所以该解决方案不起作用:FacesContext.getCurrentInstance()目前仍为null。

我试图在SPI中找到AfterDeploymentValidation的替代方法,但一无所获。

由于DeltaSpike的开发人员似乎并不打算实现对@ManagedBean(eager=true)的替代,而OmiFaces尚不支持这种解决方案,即see。我正在用瓶子发送消息。

目前,我只是在我的webapp通用xhtml标头中访问了@ManagedScoped(eager=true) bean(转换为@Named),但这有点丑陋。

最佳答案

使用DeltaSpike的JSF应用程序的最佳解决方案如下:

@ApplicationScoped
public class MyBean
{
    public void init(@Observes PostConstructApplicationEvent event)
    {
        // init here
    }
}

关于jsf - 在JSF22中替换@ManagedBean(eager = true),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23014776/

10-10 05:34