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 :

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}"  />
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
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();
        }
    }
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
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());
    }