salut tout le monde. j ai un probleme .je veux loader une liste des clients que je possede sur la base de donnée dans une menu deroulante en jsf.bon j attend vos solutions et merci
Version imprimable
salut tout le monde. j ai un probleme .je veux loader une liste des clients que je possede sur la base de donnée dans une menu deroulante en jsf.bon j attend vos solutions et merci
Bonjour,
Il y a plein d'exemple d'utilisation du <h:selectOneMenu> dans ce forum (et sur le net).
Quel est ton problème exactement ?
je veux le charger depuis une liste .ben je realise une apllication web dans le cadre de mon PFE . mnt j ai 2 critere de recherche par client et par service si je clique par exemple par client je veux trouver tts les clients dans une liste deroulante pour choisir un parmi eux.mnt comment je peux charger cette liste deroulante
c très facile :mouarf:,tu trouvera un exemple complet ici :
Hibernate Demo :king:
Une liste déroulante se base sur un composant <h:selectOneMenu> :
On la "popule" par une liste de SelectItem avec le composant <f:selectItems/> :Code:
1
2
3 <h:selectOneMenu value="#{bean.valeurChoisieParLUtilisateur}"> <f:selectItems value="#{bean.valeursPossibles}"/> </h:selectOneMenu>
J'espère que c'est plus clair maintenant...Code:
1
2
3
4
5
6
7 public List<SelectItem> getValeursPossibles() { List<SelectItem> options = new ArrayList<SelectItem>(); options.add(new SelectItem(uneValeur, unLibelle)); options.add(new SelectItem(uneAutreValeur, unAutreLibelle)); ... (on préférera itérer sur une liste d'objets pour remplir cette liste)... return options; }
c'est pas marché je fais une iteration sur une liste mais ca marche pas stp si c'est possible envoi moi un exemple complet (list <>deja existé vers une liste de seletITem puis on fait appelle a cette methode dans le jsp pour la charger dans la selectOneMenu
merci wajdopovitch mais je travaille avec eclipse
voila le code hibernate
le code java beanCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 public List<QualiteService> findAll(){ List values = null; try{ String request = "select distinct id_client from QualiteService "; Query query = getSession().createQuery(request); values = query.list(); }catch (Exception e) { e.printStackTrace(); } return values; }
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13 public List<SelectItem> getAllclient(){ List<SelectItem> SI=new ArrayList<SelectItem>(); ClientDao cdo=new ClientDao(); List<QualiteService> l=new ArrayList<QualiteService>(); QserviceDao fdo=new QserviceDao(); l=fdo.findAll(); for(int i=0;i<l.size();i++) { SI.add(new SelectItem(l.get(i).getId_client(),l.get(i).getId_client())); } return SI; }
Bon, ok (il y a des choses à dire sur ce code, mais là n'est pas le sujet).
Le code me semble marcher. Quel est ton problème ?
voila le message d'erreur:
Code:
1
2 javax.servlet.ServletException: /web/client.jsp(26,3) '#{client.allclient}' Error reading 'allclient' on type pl.Client javax.faces.webapp.FacesServlet.service(FacesServlet.java:277)
Visiblement ton bean client fait référence à la classe pl.Client.
Est-ce que la méthode getAllclient() est dans cette classe-là ?
oui
Tu peux montrer ton code JSF ?
Note romaintaz: :tagcode:Code:
1
2
3
4
5
6
7
8
9
10 <h:form> <h:panelGrid styleClass="txt" > <h:outputText value="Critere de recherche: " ></h:outputText> <h:selectOneMenu value="#{qualiteservice.critere}"> <f:selectItems value="#{client.allclient}"/> </h:selectOneMenu><br/> <h:commandButton value="chercher" action="#{qualiteservice.chercher}"/> <br> </h:panelGrid> </h:form>