我正在寻找一种替代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/