交換@ManagedBean(eager=true)にJSF22
質問
私の見解を交換し @ManagedBean(eager=true)
アノテーションを行情2.2となります。
私が順調に滑り出しの提案 など することにより実行のコードのアプリケーションの開始です。
いかにアクセス FacesContext
, ので、このソリューションは動作しない: FacesContext.getCurrentInstance()
でもnullです。
また日本に代替 AfterDeploymentValidation
にSPIが見つかりますか。
としてdeveloppersのDeltaSpikeいう計画を実施する置換を @ManagedBean(eager=true)
としてOmiFacesな支援このような液 見.私のメッセージ送信できるのです。
にんにアクセス @ManagedScoped(eager=true)
コーヒーに早変わり @Named
, 私のウエブアプ共通のxhtmlヘッダー、そのような醜い.
解決
Deltaspikeを使用したJSFアプリケーションの最良の解決策は次のとおりです。
@ApplicationScoped
public class MyBean
{
public void init(@Observes PostConstructApplicationEvent event)
{
// init here
}
}
. 他のヒント
1.8 1.8、CDI互換 @Eager
は@Named @ApplicationScoped
だけではなく、CDIの@SessionScoped
および@RequestScoped
でALSと@ViewScoped
を除外します。 blogエントリと showcase例。
@Eager @ApplicationScoped
:
import javax.enterprise.context.ApplicationScoped;
import javax.inject.Named;
import org.omnifaces.cdi.Eager;
@Named
@Eager
@ApplicationScoped
public class Bean {
// ...
}
.
または @Startup
。これはステレオタイプです。@Eager @ApplicationScoped
:
import javax.inject.Named;
import org.omnifaces.cdi.Startup;
@Named
@Startup
public class Bean {
// ...
}
. 所属していません StackOverflow