在JSF 2.0中,新的@ManagedProperty批注用于将受管bean依赖注入(DI)到另一个受管bean的属性中。
让我们看一个@ManagedProperty示例:
MessageBean.java –名为“ message ”的托管bean。
import java.io.Serializable;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
@ManagedBean(name="message")
@SessionScoped
public class MessageBean implements Serializable {
//business logic and whatever methods...
}
HelloBean.java –将“ message ” bean注入“ messageBean ”属性。
import java.io.Serializable;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.SessionScoped;
@ManagedBean
@SessionScoped
public class HelloBean implements Serializable {
@ManagedProperty(value="#{message}")
private MessageBean messageBean;
//must povide the setter method
public void setMessageBean(MessageBean messageBean) {
this.messageBean = messageBean;
}
//...
}
在此示例中,它使用@ManagedProperty批注通过setter方法setMessageBean()将“消息” bean( MessageBean.java )DI到“ hello” bean( HelloBean.java )的属性( messageBean )中。
注意
为了使注入成功,注入属性( messageBean )必须提供setter方法。
下载源代码
下载它– JSF-2-Inject-Managed-Beans-Example.zip (10KB)
参考
翻译自: https://mkyong.com/jsf2/injecting-managed-beans-in-jsf-2-0/