IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JSF Java Discussion :

Récupérer la propriété d'un managedbean à partir d'un autre managedbean


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Avril 2007
    Messages : 70
    Par défaut 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?

  2. #2
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Par défaut
    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

  3. #3
    Membre éclairé
    Inscrit en
    Février 2008
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 64
    Par défaut
    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:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    import javax.faces.context.FacesContext;
    et puis il faut récupérer le contexte courant de l'application

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    FaceContext fc=FaceContext.getCurrentInstance();
    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
     
    Bean2 bean2=(Bean2) fc.getApplication.createValueBinding("#{bean2}").getValue(fc);
    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.getPropriete();

  4. #4
    Membre averti
    Inscrit en
    Janvier 2007
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 17
    Par défaut
    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

  5. #5
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Par défaut
    Voila une méthode toute faite :
    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; 
    	}
    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.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Avril 2007
    Messages : 70
    Par défaut
    merci pour vos réponses je vais regarder tout ca

    vous n'auriez pas un lien avec des @ManagedProperty (jSF 2.0)?

  7. #7
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    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

Discussions similaires

  1. Réponses: 13
    Dernier message: 18/02/2015, 06h53
  2. Réponses: 1
    Dernier message: 17/07/2012, 11h43
  3. [Débutant] changer une propriété d'un ViewModel à partir d'un autre
    Par ragu23 dans le forum Silverlight
    Réponses: 2
    Dernier message: 19/06/2012, 16h32
  4. Réponses: 4
    Dernier message: 15/05/2009, 16h54
  5. Réponses: 2
    Dernier message: 12/06/2008, 10h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo