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 :

passage d'une valeur d'un bean à un autre


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
    Décembre 2007
    Messages
    150
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 150
    Par défaut passage d'une valeur d'un bean à un autre
    Bonjour tout le monde;

    supposé que j'ai deux pages JSF avec un bean chacune.

    une fonction d'un bean donne un paramètre comme résultat d'un traitement (requête SQl).

    comment faire passer la valeur de ce paramètre à une fonction du second bean.

    MERCI

    NB: si ce n'est pas clair je suis disponible pour préciser encore plus ma question.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    426
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Tunisie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 426
    Par défaut
    Salut, je te propose ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <a4j:commandButton value="valider">
                <a4j:actionparam name="username" value="#{bean1.resultSql}" assignTo="#{bean2.valeur}"/>
            </a4j:commandButton>
    dans le getResultSql(), tu met ton traitement Sql

    J'espère que ça t'aidera

  3. #3
    Membre éclairé Avatar de VirageGroup
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 81
    Par défaut
    Bonjour,

    tu peux aussi retrouver un bean JSF directement en java:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    FacesContext facesContext = FacesContext.getCurrentInstance();
     
    //( JSF 1.2 )
    ValueExpression valueExp = getValueExpression("#{" + nomBackingBean + "}");
    if (valueExp != null) {
                backingBean = valueExp.getValue(facesContext.getELContext());
    }
    backingBean.setParametre(...);
    où "nomBackingBean" est le nom du bean recherché tel que défini dans le faces-config.xml.

    Attention, néanmoins à la définition du scope des bean !!

    VG.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    150
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 150
    Par défaut
    Merci bien jaljal mais le a4j n'est pas reconnu une fois que je l'insère. Précise un peu plus si possible.

    Merci Viragegroup, je pars sur le champs essayer ce que tu me propose ici.

  5. #5
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 152
    Par défaut
    tu peux aussi déclarer dans le faces-config une propriété pour le bean1 ayant pour valeur le bean2.

    Exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    <managed-bean>
    		<managed-bean-name>bean1</managed-bean-name>
    		<managed-bean-class>monpackage.Bean1</managed-bean-class>
    		<managed-bean-scope>session</managed-bean-scope>
    		<managed-property>
    			<property-name>bean2</property-name>
    			<property-class>package.Bean2</property-class>
    			<value>#{bean2}</value>
    		</managed-property>
    </managed-bean>
    <managed-bean>
    		<managed-bean-name>bean2</managed-bean-name>
    		<managed-bean-class>monpackage.Bean2</managed-bean-class>
    		<managed-bean-scope>session</managed-bean-scope>
    </managed-bean>
    Dans ton managed bean bean1 tu auras un attribut de Bean2 avec évidemment les getters/setters associés.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    150
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 150
    Par défaut
    l'attribut auquel tu fais allusion doit bien figurer quelque part dans les lignes de faces-config.xml que tu viens de poster.

    Est-ce au niveau de #{bean2} ???? a la place de bean2 ????

  7. #7
    Membre éclairé Avatar de VirageGroup
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 81
    Par défaut
    Bonjour VirageGroup et merci pour tes reponses;

    Comment doit-je déclarer mon backing bean dans ces lignes de codes que tu viens de me poster.

    * mon bean : Menu.java

    * mon backing bean que je veux utiliser : Authentification.java

    * mon package : maquette_statique

    Merci pour tes précisions
    Je suppose que dans ton fichier faces-config.xml tu as qqchose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <managed-bean>
    		<managed-bean-name>MenuBean</managed-bean-name>
    		<managed-bean-class>maquette_statique.Menu</managed-bean-class>
    		<managed-bean-scope>session</managed-bean-scope>
    </managed-bean>
     
    <managed-bean>
    		<managed-bean-name>AuthentificationBean</managed-bean-name>
    		<managed-bean-class>maquette_statique.Authentification</managed-bean-class>
    		<managed-bean-scope>session</managed-bean-scope>
    </managed-bean>
    Dans ce cas, tu peux faire dans une méthode de Authentification tu peux faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    FacesContext facesContext = FacesContext.getCurrentInstance();
    Menu menu = null; 
    //( JSF 1.2 )
    ValueExpression valueExp = getValueExpression("#{ MenuBean }");
    if (valueExp != null) {
                menu = valueExp.getValue(facesContext.getELContext());
    }
     
     
    menu.setFoo(...);
    menu.getBar();
    VG

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 17/10/2006, 16h01
  2. formater une valeur d'un bean
    Par franc6 dans le forum Struts 1
    Réponses: 1
    Dernier message: 10/07/2006, 16h22
  3. [JSF] Récupération d'une valeur d'un bean
    Par mymyma dans le forum JSF
    Réponses: 1
    Dernier message: 21/06/2006, 10h15
  4. [VB]Passage d'une valeur NULL à un champ de type date?
    Par anikeh dans le forum VB 6 et antérieur
    Réponses: 21
    Dernier message: 01/02/2006, 17h04
  5. [scriplet] affecter une valeur par un bean:write
    Par viena dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 25/11/2004, 16h29

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