Injizieren von Managed Beans in JSF 2.0
In JSF 2.0 wird eine neue Annotation von@ManagedPropertyverwendet, um eine verwaltete Bean in die Eigenschaft einer anderen verwalteten Bean zu integrieren.
Sehen wir uns das Beispiel von@ManagedPropertyan:
MessageBean.java - Eine verwaltete Bean mit dem Namen "message".
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 - Injizieren Sie die Bean "message" in die Eigenschaft "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; } //... }
In diesem Beispiel wird die Annotation@ManagedPropertyverwendet, um die "Nachrichten" -Bohne (MessageBean.java) in die Eigenschaft (messageBean) der "Hallo" -Bohne (HelloBean.java) zu DI. über die Setter-MethodesetMessageBean().
Note
Um diese Injektion erfolgreich zu machen, muss die Injektionseigenschaft (messageBean) die Setter-Methode bereitstellen.
Quellcode herunterladen
Laden Sie es herunter -JSF-2-Inject-Managed-Beans-Example.zip (10 KB)