... Bonjour,
Tout est dans le titre, y a t'il un moyen de récupérer la propriété d'un managedBean à partir d'un autre managedBean?
... Bonjour,
Tout est dans le titre, y a t'il un moyen de récupérer la propriété d'un managedBean à partir d'un autre managedBean?
C'est tout à fait possible.
Le sujet ayant été abordé de nombreuses fois, je te suggère une petite recherche sur ce forum...
Nous sommes tous semblables, alors acceptons nos différences !
--------------------------------------------------------------
Liens : Blog | Page DVP | Twitter
Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
Critiques : Apache Maven
Bonjour,
pour récupérer un bean à partir d'un autre bean on pourrai suivre l'exemple suivant:
nous avons bean1 et bean2, on suppose que bean2 est dans la session et on veut faire appel à l'une de ses méthode qui est getPropriete(), et celà dans la classe de définition de bean1 bien sûr
le bean2 il faut le laisser tranquillement dans la session.
dans la classe de définition bean1 je propose de faire un include de:
et puis il faut récupérer le contexte courant de l'application
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2import javax.faces.context.FacesContext;
en suite on récupére le bean2 et on suppose que sa classe est Bean2.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 FaceContext fc=FaceContext.getCurrentInstance();
maintenant nous avons l'objet bean2 et on peut invoquer sa méthode.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Bean2 bean2=(Bean2) fc.getApplication.createValueBinding("#{bean2}").getValue(fc);
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 bean2.getPropriete();
Il y'a plusieurs façon pour faire cela.
Voici un bon site qui détaille ces méthodes:
http://balusc.blogspot.com/2006/06/c...enManagedBeans
Voila une méthode toute faite :Tu lui passes ton contexte JSF,l'id du manageBean declaré dans ton facesContext,et la classe du ManagedBean que tu veux récupérer.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 public static Object recupManagedBeanById(FacesContext context, String id, Class classeBean) { Object bean = context.getApplication().getExpressionFactory().createValueExpression(context.getELContext(), "#{" + id + "}", classeBean).getValue(context.getELContext()); return bean; }
merci pour vos réponses je vais regarder tout ca
vous n'auriez pas un lien avec des @ManagedProperty (jSF 2.0)?
Il suffit de déclarer le bean en paramètre d'un autre bean et ajouter l'annotation avec JSF 2.0, sinon avec JSF 1 ty peux le faire aussi, c'est mieux que de d'appeler le bean avec les valueExpression, tu profitera de l'injection de dépendance de JSF.
un exemple est donné dans la![]()
Articles: Richfaces - JBosstools pour JSF.
Partager