Bonjour à tous,
j'ai un problème de valueChangeListener dans une page JSF : la méthode désignée n'est jamais
exécutée. Apparemment, il ne reconnait même pas l'attribut "valueChangeListener" car si je met une méthode qui n'existe pas dans mon bean, il ne lève aucune exception !
Le but est lors de la séléction d'un élément dans liste cela affiche deux outputText : un déja avec une valeur et l'autre en fonction de ce qui est séléctionner dans la liste.
du coté de ma page jsp :
dans mon bean la méthode qui permet de construire le select :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <h:selectOneMenu id="souceDeDonnees" value="#{uploadrequetes.requete.sourceDeDonneesid}" valueChangeListener="#{uploadrequetes.renderedInfoSource}" onclick="submit()" immediate="true" > <f:selectItems value="#{uploadrequetes.sourceDeDonneesIds}" /> </h:selectOneMenu> <h:outputText value="Type requête :" rendered="#{uploadrequetes.sourceCheck}" /> <h:outputText id="typeRequete" value="#{uploadrequetes.test}" rendered="#{uploadrequetes.sourceCheck}" />
et le code de ma méthode renderedInfoSource :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 public javax.faces.model.SelectItem[] getSourceDeDonneesIds() { EntityManager em = getEntityManager(); try{ List <Sourcededonnees> l = (List <Sourcededonnees>) em.createQuery("select o from Sourcededonnees as o").getResultList(); SelectItem select[] = new SelectItem[l.size()]; int i = 0; for(Sourcededonnees x : l) { select[i++] = new SelectItem(x); } return select; } finally { em.close(); } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 public void renderedInfoSource(ValueChangeEvent event ) { Sourcededonnees sourcededonnees = (Sourcededonnees) event.getNewValue(); setTest(sourcededonnees.getSourceDeDonneestypeRequete()); sourceCheck = true; System.out.println("On se trouve dans le rendered !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); System.out.println(sourcededonnees.toString()); }
Partager