2010-12-29 10 views
1

Ich möchte mehrere Instanzen derselben CDI Named Bean auf einer JSF2-Seite verwenden. (Stellen Sie sich vor, ich habe eine Backing-Bean, um auf eine Contentmanager-Kategorie zuzugreifen, aber ich möchte mehrere Kategorien auf derselben JSF-Seite anzeigen.) Ich frage mich, wie ich den Standardnamen von @Named annotation überschreiben kann, damit ich diese 3 oder 4 Instanzen haben kann auf meiner Seite. (¿Merken Sie sich das alte JSP-Tag "useBean", um eine Bean auf einer Seite zu verwenden ... Sie könnten mehrere Instanzen derselben Klasse auf diese Weise verwenden) Ich habe nach beans.xml gesucht, finde sie aber nicht. Kann ich den alten Eintrag "faces-context.xml" "managed bean" verwenden? Ich weiß nicht, ob dies für eine CDI @ Named-Bean gilt oder nur für alte nicht CDI-verwaltete Beans verwendet werden kann.Wiederverwendung von mehreren CDI @ Named-Bean-Instanzen der gleichen Klasse in einer JSF-Seite

Dank für jede Info, Ignacio

Antwort

2

Sie können einfach Ihre Bean @Dependent erstellen (oder vorhandene Bereichsannotation entfernen). Solange Sie die Bean nicht zweimal im selben EL-Ausdruck verwenden, erhalten Sie neue zugrunde liegende Instanzen.

0

Sie können nicht mehr als eine in einem bestimmten Umfang Bean-Instanz haben. So können Sie beispielsweise in einer Anfrage nicht zwei Instanzen einer beanspruchten Bean haben. Das ist der Punkt der Bereiche.

Also ich denke, Sie sollten Ihre Bohnen überhaupt nicht verwaltet haben. Setzen Sie sie einfach als Anfrageattribute und greifen Sie über EL darauf zu.

+0

Ich habe die Mehrfachfunktionalität in der CDI-verwalteten Bean "eingeschlossen", um verschiedene Instanzen zu replizieren. Ich möchte CDI und @named Annotation verwenden, hoffte aber, dass die alte Art, mehrere in JSP-Seiten verwendete Beans einzubeziehen, auf ähnliche Weise repliziert werden könnte. Danke für deine Antwort. – icordoba