1
私はJSF 2.2を使用しており、EL式を使用してマネージドBeanのインスタンスを取得する必要があります。私はマネージドBeanのインスタンスがまだ作成されていない場合、インスタンスを作成する以下のコードを使用しています。 Beanがすでに作成され、メモリ内にある場合(スコープされた変数はセッション中であれば要求、..)、新しいBeanを作成せずにマネージドBeanのそのインスタンスを返します。 私の要件は、Beanがまだ作成されていない場合、nullを返し、新しいインスタンスを作成しないことです。すでに作成されている場合は、そのインスタンスを返す必要があります。しかし、以下のコードは、存在しなければ、作成します。 私は明確です。JSF 2.2のEL式
public static MyManagedBean getMyManagedBean() {
MyManagedBean bean = (MyManagedBean) getFacesContext().getApplication().getExpressionFactory().createValueExpression(getELContext(),
"#{MyManagedBean}",
MyManagedBean .class).getValue(FacesContext.getCurrentInstance().getELContext());
return bean;
}
ご返信いただきありがとうございます。私はこれを試してみる。 – dontnetnewbie
これは、CDIマネージドBeanでは機能しません。 – BalusC
@BalusC CDIマネージドBeanでも動作するコードを完成させました。質問はJSFだけでタグ付けされているので、私はその部分を見落としましたが、完全なコードは常に優れています。しかし、このコードは本当に完璧ですか?私たちが探し求めなければならない他の場所はありますか? –