jsf-forum.de jsf-forum.de jsf-forum.de
jsf-forum.de    
jsf-forum.de

Managed Beans

Managed Beans können in JSF 2.0 künftig mittels Annotations deklariert werden. Auch hier entfällt die Notwendigkeit, die faces-config.xml benützen zu müssen.

@ManagedBean
@SessionScoped
public class PersonBean {

Im Listing sehen Sie eine Klasse PersonBean, die mittels der Annotation @ManagedBean zu einem JSF gemanagten Bean wird. Der Scope wird über die Annotation @SessionScope gesteuert. Per Default ist der Beanname der Name der Klasse, nur der erste Buchstabe wird kleingeschrieben. Konkret würde die PersonBean im FacesContext über den Namen "personBean" ansprechbar sein.

Möchte man explizit einen Namen des Beans angeben, ist dies über das Attribut "name" möglich.
@ManagedBean(name="tollePerson")
@SessionScoped
public class PersonBean {

Interessant an dieser Stelle zu erwähnen ist das Attribut "eager", das bei der Annotation @ManagedBean verwendet werden kann. Dieses Attribut kann nur im Zusammenhang mit einem Application-Scoped Bean verwendet werden und steuert, wann das Bean angelegt wird. Standardverhalten von JSF ist lazy, also beim ersten Zugriff darauf. Mit der eager-Einstellung wird erreicht, dass beim Anlegen des Kontextes bereits das Beans angelegt wird.

Managed Properties
In JSF konnten Properties von Beans in der faces-config.xml vorbelegt werden. Genau das gleiche kann auch über Annotations erreicht werden.
@ManagedBean
@SessionScoped
public class PersonBean {

@ManagedProperty(value="Andy")
private String firstname;

@ManagedProperty(value="Bosch")
private String lastname;

Im value-Attribut kann ein direkter Wert eingegeben werden oder auch eine ValueExpression. Das name-Attribut zeigt an, auf welches Property sich die Angabe bezieht. In der Regel wird das Property genommen, das direkt unterhalb der Annotation steht. Es kann jedoch auch explizit angegeben werde.

Zurück zur Übersichtsseite

jsf-forum.de