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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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" ??

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