Bonjour,
j'ai une liste déroulante que je veux remplir via une requête HQL .est ce que quelqu'un a une idée là dessus,merci
Bonjour,
j'ai une liste déroulante que je veux remplir via une requête HQL .est ce que quelqu'un a une idée là dessus,merci
Il faut que tu relie ton selectOneMenu à une propriété List de ton Bean. Il faut ensuite que tu ensuite que tu remplisse cette propriété avec les éléments retourné par ta requête.
Si tu n'y arrive pas montre nous ton code et dis nous quelle est la partie qui te bloque.
voilà la méthode qui retourne uneliste d'enregistrement :
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 public List getmaliste() { List unelist = new ArrayList(); try { org.hibernate.Session session = HibernateUtil.currentSession(); //org.hibernate.Transaction tx = session.beginTransaction(); org.hibernate.Query q = session.createQuery("from Matable"); unelist= q.list(); //session.close(); } catch (Exception e) { e.printStackTrace(); } return unelist; }
et pour la liste déroulante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <h:selectOneMenu id="MonMenu" value="#{bean.maliste}" > </h:selectOneMenu>
D'après ton code il faudrait que tu ai plutôt ça
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 public List<SelectItem> getMaliste() { List<SelectItem> unelist = new ArrayList <SelectItem>(); try { org.hibernate.Session session = HibernateUtil.currentSession(); //org.hibernate.Transaction tx = session.beginTransaction(); org.hibernate.Query q = session.createQuery("from Matable"); Iterator it = q.list().iterator(); while (it.hasNext()){ Matable elementCourant = it.next(); unelist.add(new SelectItem(elementCourant.getAttributCle(), elementCourant.getAttributValeur()); //session.close(); } } catch (Exception e) { e.printStackTrace(); } return unelist; }Il faudra que tu ai dans ta classe un attribut valeurDeLaListe avec ces getter et setter qui prendra comme valeur la clé du SelectItem choisit dans la liste.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <h:selectOneMenu id="MonMenu" value="#{bean.valeurDeLaListe}" > <f:selectItems value="#{bean.maliste}" /> </h:selectOneMenu>
Merci pour votre réponse,
mais j'ai compris la ligne
c quoi le type de la variable MAtable
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Matable elementCourant = it.next();
aussi pour la ligne
j'ai une erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 List<SelectItem> unelist = new ArrayList()<SelectItem>;
< cannot be applied to java.util.arraylist,selectitem
d'après le code que tu as écris tu fais une requête hibernate sur un type d'objet maTable (que du doit normalement avoir mappé) donc la liste de résultat retournée est composée d'élément du type maTable.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Matable elementCourant = it.next();
Il y as une erreur dans mon code la bonne syntaxe est :
j'édite mon message précédent.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 List<SelectItem> unelist = new ArrayList <SelectItem> ();
Partager