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 :

[PrimeFaces] autocomplete successif (succession de dépendances)


Sujet :

JSF Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    279
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 279
    Points : 102
    Points
    102
    Par défaut [PrimeFaces] autocomplete successif (succession de dépendances)
    Bonjour,

    J’essaye d’intégrer une saisie d'adresse avec cette manière :

    1- Choix du pays (SelectOneMenu)
    2- Choix de la Region (SelectOneMenu dependant du pays choisie)
    3- Choix de la Ville (SelectOneMenu dependant de la region choisie)
    4- Saisie de l'adresse avec option autocomplete (InputText dependant de la ville choisie)

    Pour chaque élément j'ai un managedBean (paysBean, regionBean, villeBean et adresseBean)

    voici le code JSF pour cela :

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    <div class="s_row_2 clearfix">
            	<label><strong>Pays</strong></label>
            	<h:selectOneMenu id="pays" style="width: 150px;" value="#{paysBean.idPays}">
            		<f:selectItem itemValue="0" itemLabel="--------"></f:selectItem>
    	          	<f:selectItems value="#{paysBean.paysItems}"></f:selectItems>
    	          	<p:ajax update="pays div_region" />
    	        </h:selectOneMenu>	
            </div>
     
            <div class="s_row_2 clearfix" id="region">
            	<label><strong>Region</strong></label>
    	        <h:selectOneMenu id="div_region" style="width: 200px;" value="#{regionBean.idRegion}">
    	        	<f:selectItem itemValue="0" itemLabel="--------"></f:selectItem>
    	          	<f:selectItems value="#{regionBean.getRegionItems(paysBean.idPays)}"></f:selectItems>
    	          	<p:ajax update="div_ville" />
    	        </h:selectOneMenu>
    	        <p:message for="div_region" />
            </div>
     
            <div class="s_row_2 clearfix" id="ville">
    	        <label><strong>Ville</strong></label>
    	        <h:selectOneMenu id="div_ville" style="width: 200px;" value="#{villeBean.idVille}">
    	        	<f:selectItem itemValue="0" itemLabel="--------"></f:selectItem>
    	          	<f:selectItems value="#{villeBean.getVilleItems(regionBean.idRegion)}"></f:selectItems>
    	          	<p:ajax update="adresse" />
    	        </h:selectOneMenu>
            </div>
     
            <div class="s_row_2 clearfix" id="div_adresse">
              <label class="required"><strong>Adresse</strong></label>
              <p:autoComplete id="adresse" value="#{adresseBean.libelle}" completeMethod="#{adresseBean.completeText}"/> 
            </div>
    Le 1er souci que j'ai est que lorsque je choisie le pays pour la première fois, la valeur idPays n'est pas setter mais si je le fais une seconde, troisième fois la valeur est bien setter dans le ManagedBean.

    le 2eme souci est que je trouve pas le moyen pour mettre a jour la liste des adresse (adresses) en fonction de la ville choisie. (1er appel)

    Note : l'attribut adresses est dans le bean AdresseBean

    Merci de votre aide.

  2. #2
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 311
    Points : 9 526
    Points
    9 526
    Billets dans le blog
    1
    Par défaut
    Une première remarque, il faudrait utiliser les composants primefaces avec p:ajax, dans ton cas, un <p:selectOneMenu> plutôt que <h:selectOneMenu>

    Deuxième remarque, ton <p:ajax> n'a pas d'événement, je te suggère d'utiliser "change" => <p:ajax event="change" update="div_region"/>

    Ensuite, ce n'est pas très judicieux d'éparpiller tes attributs dans différents managedBean puisque tu as besoin de tous ces attributs pour déterminer ton adresse, je n'en utiliserais qu'un seul, adresseBean, qui contiendrait les attributs pays, region, ville et adresse.
    Comme ça, ta méthode liée à l'autocomplete aura tous les attributs à disposition pour affiner ses valeurs possibles.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    279
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 279
    Points : 102
    Points
    102
    Par défaut
    Merci OButterlin pour votre réponse,

    J'ai fais les recommandations demandé, en changeons le code comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <p:selectOneMenu id="pays" style="width: 150px" value="#{utilisateurBean.idPays}">
           		<f:selectItem itemValue="" itemLabel="******"/> 
              	<f:selectItems value="#{utilisateurBean.paysItems}"></f:selectItems>
              	<p:ajax event="change" update="div_region"/>
    </p:selectOneMenu>
    Dans ce cas, j'arrive pas a faire la séléction dans la liste pays

  4. #4
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 311
    Points : 9 526
    Points
    9 526
    Billets dans le blog
    1
    Par défaut
    Pourquoi ? Il y a une erreur ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    279
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 279
    Points : 102
    Points
    102
    Par défaut
    Aucune erreur affichée, en changeons le tag par un <h:> au lieu du <p:> je sélectionne mais la première sélection n'est pas envoyé au bean

  6. #6
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 311
    Points : 9 526
    Points
    9 526
    Billets dans le blog
    1
    Par défaut
    Il faut lui dire ce que tu veux envoyer, tu peux par exemple faire ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <p:ajax event="change" process="@form" update="div_region"/>
    ou juste le champ avec process="@parent"
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    279
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 279
    Points : 102
    Points
    102
    Par défaut
    Merci beaucoup

    Ca fonctionne maintenant.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 25/06/2014, 18h21
  2. Réponses: 0
    Dernier message: 20/06/2014, 20h07
  3. [PrimeFaces] AutoComplete qui se perd
    Par CheepCheep dans le forum JSF
    Réponses: 0
    Dernier message: 23/05/2014, 12h49
  4. composant autocomplete primefaces
    Par Feres_agent1116 dans le forum Débuter avec Java
    Réponses: 6
    Dernier message: 16/04/2013, 17h18
  5. primefaces : l'autocomplete ne marche pas
    Par olivier57b dans le forum JSF
    Réponses: 0
    Dernier message: 01/11/2010, 15h43

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