@ManagedProperty
アノテーションを使用してJSFマネージドBean全体を別のマネージドBeanに注入しようとしています( @ ManagedBeanを@ManagedPropertyとして@WebServletに注入できますか? と非常によく似ていますが、サーブレットではなく、Beanに注入しています)。これは私がしていることです:
@ManagedBean
public class Foo {
@ManagedProperty(value = "#{bar}")
private Bar bar;
}
@ManagedBean
public class Bar {
}
動作しません(JSF 2.0/Mojarra 2.0.3):
SEVERE: JSF will be unable to create managed bean foo when it is
requested. The following problems where found:
- Property bar for managed bean foo does not exist. Check that
appropriate getter and/or setter methods exist.
可能ですか、それともFacesContext
を介してプログラムでこの注入を行う必要がありますか?
セッターとゲッターを追加する必要があります
@ManagedBean
public class Foo {
@ManagedProperty(value = "#{bar}")
private Bar bar;
//add setters and getters for bar
public Bar getBar(){
return this.bar;
}
public void setBar(Bar bar){
this.bar = bar;;
}
}
FacesContext
が依存性を解決して注入する場合、セッター注入を使用するため、適切なセッター/ゲッターが存在する必要があります。そうでない場合、プロパティが見つかりません。