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 :

appel methode bean dans selectOneMenu


Sujet :

JSF Java

  1. #1
    Membre éclairé Avatar de psycho_xn
    Inscrit en
    Mars 2007
    Messages
    250
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 250
    Par défaut appel methode bean dans selectOneMenu
    bonjour,
    en utilisant un selectOneMenu je voudrais que après sélection exécuter une méthode d'un bean, j'ai donc ajouté onselect à mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <h:selectOneMenu id="MonMenu" value="#{plat_bean.resto_plat}" onselect="#{commande_bean.ma_methode}">
         <f:selectItems value="#{resto_bean.maliste}"/>
         <a4j:support event="onclick" reRender="rep"/>
     </h:selectOneMenu>
    le pb est lors de l'exécution de ma page j'ai l'erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    La classe 'Beans.b_Commande' ne possède pas la propriété 'ma_methode'.
    merci bcp

  2. #2
    Expert confirmé
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Par défaut
    Le onselect est un attribut HTML et non pas JSF, et il doit pointer vers une fonction JavaScript.

    Il faut plutôt passer par un valueChangeListener combiné à soit:
    - un submit forcé du form via JS
    - ou encore par ajax4jsf (<a4j:support>).

  3. #3
    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
    Effectivement, les attribut onXxx font référence à du Javascript.

    Ce qu'il y a dans ton onselect, il faut le placer dans l'attribut actionListener du a4j:support que tu utilises ensuite...
    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

  4. #4
    Membre éclairé Avatar de psycho_xn
    Inscrit en
    Mars 2007
    Messages
    250
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 250
    Par défaut
    donc je devais plutot mettre
    <h:selectOneMenu id="MonMenu" value="#{plat_bean.resto_plat}" valueChangeListener="#{commande_bean.ma_methode}" onchange=""submit()>

  5. #5
    Membre éclairé Avatar de psycho_xn
    Inscrit en
    Mars 2007
    Messages
    250
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 250
    Par défaut
    j'ai mis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <h:selectOneMenu id="MonMenu" value="#{plat_bean.resto_plat}" valueChangeListener="#{commande_bean.vider_champs}" onchange="submit()">
    j'ai ma page qui s'actualise sauf que apparemment ma méthode ne s'exécute pas

  6. #6
    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
    Je pensais plutôt à ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <h:selectOneMenu id="MonMenu" value="#{plat_bean.resto_plat}">
         <f:selectItems value="#{resto_bean.maliste}"/>
         <a4j:support event="onclick" reRender="rep" actionListener="#{commande_bean.ma_methode}"/>
     </h:selectOneMenu>
    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

  7. #7
    Membre éclairé Avatar de psycho_xn
    Inscrit en
    Mars 2007
    Messages
    250
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 250
    Par défaut
    mais normalement si je fais ça je doit lier reRender="rep" à un composant sur lequel va s'appliquer le changement un inpuText par exemple et mettre son id="rep" ??

  8. #8
    Expert confirmé
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Par défaut
    Oui, il faut mettre l'identifiant du composant à redessiner au leiu de "rep".

  9. #9
    Membre éclairé Avatar de psycho_xn
    Inscrit en
    Mars 2007
    Messages
    250
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 250
    Par défaut
    le truc c'est que je voudrais que lorsque je change la selection de mon selectOneMenu vider tous les champs de mon formulaire, donc ma_methode c'est pour mettre à null les champs. donc le chamgement est lié à pls champs avec différents id

  10. #10
    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
    Citation Envoyé par psycho_xn Voir le message
    le truc c'est que je voudrais que lorsque je change la selection de mon selectOneMenu vider tous les champs de mon formulaire, donc ma_methode c'est pour mettre à null les champs. donc le chamgement est lié à pls champs avec différents id
    Rien ne t'empêche de redessiner un composant a4j:outputPanel par exemple, qui contiendrait tous tes champs de ton formulaire...
    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

  11. #11
    Membre éclairé Avatar de psycho_xn
    Inscrit en
    Mars 2007
    Messages
    250
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 250
    Par défaut
    Citation Envoyé par romaintaz Voir le message
    Rien ne t'empêche de redessiner un composant a4j:outputPanel par exemple, qui contiendrait tous tes champs de ton formulaire...
    j'ai un peu cherché, mais j'ai pas bien compris pour le a4j:outputPanel.

    j'ai essayé de travailler avec un seul champs pour voir si ça marche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <h:selectOneMenu id="MonMenu" value="#{plat_bean.resto_plat}">
        <f:selectItems value="#{resto_bean.maliste}"/>
        <a4j:support event="onclick" reRender="rep"/>
        <a4j:support event="onclick" reRender="txtPlat1Code" actionListener="#{commande_bean.vider_select}"/>
        </h:selectOneMenu>
     <h:inputText size="3" id="txtPlat1Code" value="#{commande_bean.n_Plat1}" />
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     public String vider_select(){
            this.setN_Plat1(null);
            return "ok";
    }
    mais ça donne rien, mais si j'exécute la méthode avec un CommandButton le champs se vide
    je rate un truc peut être

  12. #12
    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
    Il faut éviter d'empiler les a4j:support déjà !
    Tu peux très bien demander à a4j de "redessiner" plusieurs composants, en les séparant par une virgule : reRender="bidule,truc,machin"
    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

  13. #13
    Membre éclairé Avatar de psycho_xn
    Inscrit en
    Mars 2007
    Messages
    250
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 250
    Par défaut
    Citation Envoyé par romaintaz Voir le message
    Il faut éviter d'empiler les a4j:support déjà !
    effectivement.
    mais pourquoi ça marche tjs pas je pense que la méthode s'exécute mais les résultats ne se récupèrent pas dans mes champs

Discussions similaires

  1. Problème d'appel à un Bean dans un JSF
    Par Nandou56 dans le forum JSF
    Réponses: 20
    Dernier message: 12/09/2011, 15h44
  2. appel méthode d'un bean dans du code javascript
    Par psycho_xn dans le forum JSF
    Réponses: 2
    Dernier message: 14/09/2008, 00h52
  3. Appel direct d'une méthode mappée dans un LookupDispatchAction ?
    Par petitpasdelune dans le forum Struts 1
    Réponses: 8
    Dernier message: 22/06/2006, 19h25
  4. Appel d'une methode java dans un fichier jsp
    Par kodo dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 06/05/2006, 13h46
  5. [APPLET] beans dans applet appelé depuis une page HTML
    Par Néo-Tony dans le forum Applets
    Réponses: 1
    Dernier message: 04/01/2006, 14h54

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