JSF: managed properties bereits im Konstruktor?

Status
Nicht offen für weitere Antworten.

schlumsch

Aktives Mitglied
Hallo allerseits,

eine kurze Frage zum Thema managed-beans bzw. manages properties.
Ich habe 2 beans, zwischen denen ich ein Property "manage", sieht dann so aus:


Code:
		<managed-bean>
		<managed-bean-name>bean2</managed-bean-name>
		<managed-bean-class>e2e.ta......Bean2</managed-bean-class>
		<managed-bean-scope>session</managed-bean-scope>
			<managed-property>
				<property-name>userName</property-name>
				<value>#{bean1.userName}</value>
			</managed-property>		
	</managed-bean>

Nun mache ich sowohl im Konstruktor vom bean2, als auch in den gettern und settern von bean2.userName
ein sysout auf diese Variable. Resultat: im Konstruktor ist userName leer, der setter wird danach korrekt aufgerufen und
der Benutzername ebenfalls übergeben.

Soweit ok, aber (wie) kann ich bereits im Konstruktor von bean2 auf den
Benutzernamen zugreifen?

Thx
 
Gar nicht. Soweit ich weiß unterstützt der JSF-Standard nur Setter Injection. Du könntest z.B. einen Container wie Spring verwenden, um diesem die Verwaltung der Beans zu überlassen. Vielleicht ist es aber auch bei Dir ein grundsätzliches Design-Problem, wenn die Setter Injection nicht reicht.

Gruß
 
Dank dir. Mir reicht schon "Setter Injection", das war mehr so eine prinzipielle Frage ohne zwingend notwendige Umsetzung u know
 
Das ist bestimmt kein Designproblem, das kommt sehr haeufig vor. Dafuer kann man am besten die Annotation
@javax.annotation.PostConstruct an einer Methode verwenden, die dann nach der Konstruktion und auch nach der Setterinjection aufgerufen wird. Regeln wie die Methode aussehen muss, stehen in der API DOC. Meisten sowas wie das hier:

@PostConstruct
public void init()
{
...
}
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben