Comment je peut afficher et remplir des ComboBox dont le nombre et le contenu est selon les données de ma base de données?
Version imprimable
Comment je peut afficher et remplir des ComboBox dont le nombre et le contenu est selon les données de ma base de données?
Il suffit de les créer dans ton code Java, et de les ajouter dans un conteneur (h:panelGroup par exemple) qui se situe dans ton code...
Comment je peux les créer dans mon code java?je sais comment les remplir lorsque je connais d'avance leur nombre et je les crée dans ma page JSPSvp expliquez moi un peu plus.Merci d'avanceCode:<rich:comboBox value="#{envoi.menu}" suggestionValues="#{envoi.table}" directInputSuggestions="true" ></rich:comboBox>
J'ai trouvé une solution avec <rich:dataList> voilà mon code:mais ça me génère une erreurCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 <ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:a4j="http://richfaces.org/a4j" xmlns:rich="http://richfaces.org/rich"> <style> .label{ font-weight:bold; } </style> <h:form> <rich:dataList var="destL" value="#{newGroupe.myTable}" rows="10"> <rich:comboBox value="#{destL.nomL}" suggestionValues="#{destL.sGG}" directInputSuggestions="true"></rich:comboBox> </rich:dataList> </h:form> </ui:composition>
(myTable est déclarée ainsiCode:'#{destL.sGG}' Property 'sGG' not found on type com.model.ListPersonne
et 'ListPersonne' est une classeCode:private ArrayList<ListPersonne> myTable=new ArrayList<ListPersonne>();
Je ne vois pas où est le problème surtout que lorsque j'affiche 'myTable' dans mon bean 'newGroupe' elle est bien remplie.Code:
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 package com.model; import java.util.ArrayList; public class ListPersonne { private ArrayList<String> sGG; private String nomL; public ListPersonne() { } public ArrayList<String> getSGG() { return sGG; } public void setSGG(ArrayList<String> sgg) { sGG = sgg; } public String getNomL() { return nomL; } public void setNomL(String nomL) { this.nomL = nomL; } }
Svp aidez moi car ça m'étonne vraiment
Selon les spécifications javabean, cette propriété s'appelle "SGG" et non pas "sGG" comme tu l'a mentionné dans ton code. J'ignore si ton implémentation jsf fait le check à ce point là mais ça doit etre lié.Code:setSGG(ArrayList<String> sgg)
Ok merci je l'ai corrigée comme vous m'avez indiqué mais le problème maintenant comment indiqué l'élément sélectionné de ma dataList?
Merci
l'élément séléctionné par le combobox est pointé par le value=... de celui-ci.
Non je pose la question en général : supposant que j'ai ce codecomment je peux indiquer l'élément sélectionné d'une dataList en général?Code:
1
2
3
4 <rich:dataList var="gr" value="#{group.myTable}" binding="#{group.table}" rows="10"> <h:outputText value="#{gr.libelle}"/> </rich:dataList>
Merci
qu'est-ce que tu appelle "l'élément sélectionné" dans une datalist?? Si tu parle de l'élément correspondant à la ligne en cours, tu le fait déjà, c'est #{gr} dans ton cas.
lorsque ma dataListe est affichée et je sélectionne un élément, comment je peux récupérer cet élément dans mon bean? (exemple: les éléments de dataList sont: Groupe1,Groupe2,Groupe3 et je sélectionne Groupe2. Commet je récupère ça dans mon bean?) j'ai cherché mais j'ai pas trouvé et je me bloque.
Merci
Comment tu "sélectionne" ? Datalist est l'équivalent JSF d'une boucle for avec un peu de décoration, c'est pas une liste déroulante où l'utilisateur choisi quelque chose. Tu peux nous en dire plus?
Le problème est résolu et voilà la solutionet dans le beanCode:
1
2
3
4
5
6
7 <rich:dataList var="gr" value="#{group.myTable}" rows="10" > <a4j:commandLink ajaxSingle="true" id="up" value="#{gr.libelle}"> <f:setPropertyActionListener value="#{gr}" target="#{group.choix}" /> </a4j:commandLink> <br/><br/> </rich:dataList>
et pour afficher la valeur sélectionnéeCode:
1
2 private ArrayList<Groupe> myTable=new ArrayList<Groupe>(); private Groupe choix;
:ccool:Code:System.out.println("selection= "+choix.getLibelle());