Bonjour tout le monde, je travaille une application web avec JSF, richfaces et ajax et je souhaite afficher la liste de villes selon le pays.
y'a t-il un exemple que je peux suivre SVP :?
merci d'avance
Version imprimable
Bonjour tout le monde, je travaille une application web avec JSF, richfaces et ajax et je souhaite afficher la liste de villes selon le pays.
y'a t-il un exemple que je peux suivre SVP :?
merci d'avance
C'est le cas très classique du filtrage d'une combobox en fonction de la valeur d'une autre combo box. Cas évoqué sur ce forum des dizaines de fois. Une recherche devrait donc pouvoir t'éclairer...
Je trouve rien :( un lien SVP????
merci d'avance
Ah. Bah faut mieux chercher alors ! Le premier que j'ai trouvé :
http://www.developpez.net/forums/d94...t-raffraichir/
Mais sur le principe, c'est simple :
1. Tu crées ton combobox de pays. Sur celui-ci, tu ajoutes un <a4j:support> qui va soumettre la valeur en Ajax au serveur.
2. Au niveau du serveur, tu appelles une méthode (liée au actionListener du <a4j:support>) qui va populer la List<SelectItem> utilisée par la combobox des villes.
3. Dans la page JSF, toujours sur le même <a4j:support>, tu définis le reRender pour rafraichir le combobox des villes.
Un truc du genre :
Code:
1
2
3
4
5
6
7
8 <h:selectOneMenu id="choixPays" value="#{monBean.pays}"> <f:selectItems value="#{monBean.villes}"/> <a4j:support event="onchange" actionListener="#{monBean.selectionPays}" reRender="choixVille"/> </h:selectOneMenu> <h:selectOneMenu id="choixVille" value="#{monBean.ville}"> <f:selectItems value="#{monBean.villes}"/> </h:selectOneMenu>
et dans ton bean, la méthode selectionPays() va populer la liste retournée par getVilles().
Bonsoir
Je vous remercie pour votre aide mais j'ai un petit problème, c'est que lorsque je choisis le pays la liste de ville ne s'affiche pas :s
voici mon code
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 <h:form> <h:outputText value="Pays"/> <h:selectOneMenu id="choixpays" value="#{fournisseurBean.pays}" immediate="true"> <f:selectItems value="#{fournisseurBean.listepays}"/> <a4j:support event="onchange" reRender="ville" actionListener="#{fournisseurBean.test}"/> </h:selectOneMenu> <h:outputText value="Ville"/> <h:selectOneMenu value="#{fournisseurBean.ville}" id="ville"> <f:selectItems value="#{fournisseurBean.listeville}"/> </h:selectOneMenu> </h:form>
Code:
1
2
3
4
5
6
7
8 public void test(){ if(pays.equals("Tunis")){ villes = getVilles(); setListeville(villes);} }
Code:
1
2
3
4
5
6
7 public List<SelectItem> getVilles() { villes = new ArrayList<SelectItem>(); villes.add(new SelectItem("Ariana")); villes.add(new SelectItem("Megrine")); return villes; }
La méthode test est liée à un actionListener, sa signature doit donc être la suivante :
Or dans ton code, cette méthode n'existe pas (ta méthode test ne prend aucun argument).Code:
1
2
3 public void test(ActionEvent evt) { ... }
Bonjour à tous,
Cela fait un bon moment qu'il n'y a pas eu d'activité sur ce sujet, mais j'ai une question qui je pense sera simple pour vous :
Peux ton utiliser RichFaces ajax4jsf avec des composants Primesfaces ?
Je pose cette question car je rencontre un problème similaire, remplir une combo sur choix d'une précédente combo, l'attribut valueChangeListener ne fonctionne pas je veux donc essayer d'attribuer de l'ajax.
Merci d'avance
Fred