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 :

Probleme avec h:selectOneListbox et a4j:support


Sujet :

JSF Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 34
    Points : 25
    Points
    25
    Par défaut Probleme avec h:selectOneListbox et a4j:support
    Salut!!

    le probleme est plutot simple, je veux récuperer la donnée selecitonnée de mon selectOneListbox à la volé avec a4j:support...ca ne semble pas fonctionner...
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <h:selectOneListbox size="1" id="currentTypeServiceBean" value="#{mainChampFonctionnelBean.currentTypeService}">
    				<a4j:support event="onchange" actionListener="#{mainChampFonctionnelBean.selectTypeService}" reRender="form_list_chp_fct,form_chp_fct"  />
    				<f:selectItems value="#{mainChampFonctionnelBean.listTypeService}" />
    			</h:selectOneListbox>

    j'ai surement oublié une option , non?

  2. #2
    Expert éminent
    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
    Points : 7 679
    Points
    7 679
    Par défaut
    Bonjour,
    ca ne semble pas fonctionner...
    ça ne nous avance en rien ça ... plus de détails ? une exception ? tu ne récupères pas la valeur sélectionnée ? Où au juste ? etc.

    Sinon, pourquoi pas utiliser l'attribut action au lieu d'actionListener ? C'est lus simple, non ?

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 34
    Points : 25
    Points
    25
    Par défaut
    un peu plus de detail...

    j'ai un point d'arret dans ma methode, je constate que ma methode n'est pas appelée.


    Avec action ou actionListener c'est pareil...

  4. #4
    Expert éminent
    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
    Points : 7 679
    Points
    7 679
    Par défaut
    Le tout est dans un form, n'est ce pas ?

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 34
    Points : 25
    Points
    25
    Par défaut
    ouep


    Code xml : 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
    17
    18
    19
    20
    21
    22
    23
    24
     
     
     
     
    		<a4j:form id="form_select_list_type_service" ajaxSubmit="true">
     
    			<br/>
     
     
    			<h:outputLabel styleClass="label" id="type_service" value="#{i18n.type_service} :  " />
     
    			<h:selectOneListbox size="1" id="currentTypeServiceBean" value="#{mainChampFonctionnelBean.currentTypeService}">
     
    				<f:selectItems value="#{mainChampFonctionnelBean.listTypeService}" />
     
    				<a4j:support event="onchange" action="#{mainChampFonctionnelBean.selectTypeService}" reRender="form_list_chp_fct,form_chp_fct"  />
    			</h:selectOneListbox>
     
    			<h:outputLabel id="label_mandatory_libelle" for="currentTypeServiceBean"
    						styleClass="mandatoryfield" value=" *" />
     
    			<br/>
    			<hr/>
    		</a4j:form>

  6. #6
    Expert éminent
    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
    Points : 7 679
    Points
    7 679
    Par défaut
    Normalement, il ne faut pas mélanger <a4j:support> et <a4j:form>.
    Tu peux refaire le test avec <h:form> ?

  7. #7
    Membre à l'essai
    Inscrit en
    Août 2007
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Août 2007
    Messages : 35
    Points : 22
    Points
    22
    Par défaut
    Salut, je peux te proposer une autre variante:

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <h:selectOneListbox id="id1" valueChangeListener="#{mybean.valueChanged}" onChange="submit();" immediate="true" required="true" size="1"  value="#{myBean.value}">
          <f:selectItems value="#{myBean.valueList}"/>
           <a:support event="onchange" immediate="true" reRender="id2"/>                       </h:selectOneListbox>

    Pour le myBean:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public void valueChanged(ValueChangeEvent event) {
            HtmlSelectOneListbox element = (HtmlSelectOneListbox) event.getComponent();
            String label = (String) element.getValue(); // la valeur selectionee
           <...>
        }
    voila..
    j'espere que ca peux t'aider,
    bonne chance

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 34
    Points : 25
    Points
    25
    Par défaut
    ça ne fonctionne toujours pas...

    mais j'ai avancé...

    j'ai rajouté un champ texte,une zone d'affichage et un bouton submit.

    quand je clique sur le bouton, je met a jour la zone d'affichage avec la valeur saisie...easy!

    Résultat sans la balise <h:selectOneListbox....</h:selectOneListbox> ca fonctionne, dés que je la rajoute ca ne fonctionne plus(la mise a jour de zone d'affichage n'est plus faite)
    etrange...


    Code xml : 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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
     
    <a4j:form id="form_select_list_type_service" ajaxSubmit="true">
     
     
    			<br/>
     
     
    			<h:outputLabel styleClass="label" id="select_list_type_service" value="#{i18n.type_service} :  " />
     
     
    			<h:selectOneListbox id="currentTypeServiceBean" valueChangeListener="#{mainChampFonctionnelBean.selectTypeService}" size="1"  value="#{mainChampFonctionnelBean.currentTypeService}">
     
          			<f:selectItems value="#{mainChampFonctionnelBean.listTypeService}" />
     
           		</h:selectOneListbox>
     
     
     
     
    			<h:outputLabel id="select_list_label_mandatory_libelle" for="currentTypeServiceBean"
    						styleClass="mandatoryfield" value=" *" />
     
    			<br/>
    			<hr/>
     
                <h:panelGrid columns="3">
     
                <h:outputText value="Name:" />
     
                <h:inputText value="#{mainChampFonctionnelBean.name}" />
     
                <a4j:commandButton value="Say Hello" reRender="out" />
     
            	</h:panelGrid>
     
    			 <h:panelGroup id="out">
     
    			        <h:outputText value="Hello " rendered="#{not empty mainChampFonctionnelBean.name}" />
     
    			        <h:outputText value="#{mainChampFonctionnelBean.name}" />
     
    			        <h:outputText value="!" rendered="#{not empty mainChampFonctionnelBean.name}" />
     
    			    </h:panelGroup>
     
     
     
     
    		</a4j:form>

  9. #9
    Expert éminent
    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
    Points : 7 679
    Points
    7 679
    Par défaut
    Bonjour,
    La solution donnée par CristinaB (avec quelques modifs) marche normalement, même s'il y'a des erreurs de validation qui empêchent la solution originale de fonctionner.

    Veux tu réessayer en ajoutant un <h:messages /> avant le form s'il te plaît ?

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 34
    Points : 25
    Points
    25
    Par défaut
    j'ai tout essayer mais dès que je mets le h:selectOneListbox dans mon formulaire le submit ne passe plus... pourtant mon bean est bon enfin je crois :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
     
            //Liste des types
    	private Collection<SelectItem> listTypeService;
     
    	//type selectionné
    	private SelectItem currentTypeService;
     
            //getter & setter etc...

  11. #11
    Expert éminent
    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
    Points : 7 679
    Points
    7 679
    Par défaut
    Ah non ! Le problème vient du type de l'élément sélectionné.
    On ne met pas SelectItem, mais plutôt le type que t'as utilisé pour les values des selectItem.
    Je réxplique: dans la collection des SelectItem, tu itères sur une collection de type X, et pour chaque élément X, tu ajouter un SelectItem avec X.unChamp comme label et X comme valeur (ou X.unAutreChamp) C'est ce type là qui doit être le type du value du selectOne.

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 34
    Points : 25
    Points
    25
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SelectItem selectItem =new SelectItem(object.getIdtectypsvc(),object.getIdtypsvc());
    voila j'ai testé avec un int a la place du selectItem et ca fonctionne...Par contre merci JSF pour ne pas m'afficher les classCastException!

    Merci a tous

  13. #13
    Expert éminent
    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
    Points : 7 679
    Points
    7 679
    Par défaut
    Normalement ça s'affiche si tu avais un composant <h:messages > dans ta page, et ça n'atteint pas ton managed bean: c'est détecté dès la phase de validation.

  14. #14
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 34
    Points : 25
    Points
    25
    Par défaut
    j'ai un h:messages dans ma page...je vais creuser car ça m'aurait éviter de chercher dans le noir pdt 2 jours!

  15. #15
    Membre confirmé Avatar de heid
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    388
    Détails du profil
    Informations personnelles :
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Mai 2002
    Messages : 388
    Points : 597
    Points
    597
    Par défaut
    Je crois que globalonly = false est nécessaire dans le messages pour pouvoir afficher les messages systèmes JSF.

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

Discussions similaires

  1. JSF/Ajax : Probleme avec un selectOneListbox
    Par tmanta7 dans le forum JSF
    Réponses: 0
    Dernier message: 03/04/2010, 18h33
  2. probléme avec <rich:comboBox et <a4j:support
    Par aymenroma dans le forum JSF
    Réponses: 5
    Dernier message: 10/06/2009, 15h02
  3. Problem reRender a4j:support
    Par Seiphir0the dans le forum JSF
    Réponses: 16
    Dernier message: 03/06/2009, 17h55
  4. Réponses: 5
    Dernier message: 12/02/2009, 14h54
  5. Problème avec <a4j:support/>
    Par romaintaz dans le forum JSF
    Réponses: 2
    Dernier message: 17/10/2007, 17h12

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