bonjour ,

je travaille sur un projet en jsf 2 , j'ai intégré primeFaces pour l'utilisation de l'AJAX tout est bien passé ....
mais quand je remplis mon formulaire et je clique sur envoyer , j'obtiens l'erreur suivante :

"j_id630750054_1_4bd35824:villes: Erreur de validation: Valeur not valid. "


voici mon code xhtml :

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
 
                        <h:outputText value="Pays : "/>
 
                        <h:selectOneMenu title="paysHotel" id="paysHotel" value="#{ctrHotels.hotel.paysHotel}" required="true" >
                            <f:selectItems value="#{ctrHotels.listePays}" var="liste" itemLabel="#{liste.nomPays}" itemValue="#{liste.idPays}" />
                            <p:ajax event="change" process="@this" update="villes" actionListener="#{ctrHotels.remplirListeVille}"/>
                        </h:selectOneMenu>
 
 
 
                        <h:outputText value="Ville : "/>
                         <h:selectOneMenu title="VilleHotel" id="villes" value="#{ctrHotels.hotel.villeHotel}" required="true" >
                             <f:selectItems value="#{ctrHotels.listeVilles}" var="listeV" itemLabel="#{listeV.nomVille}" itemValue="#{listeV.idVille}" />
 
                        </h:selectOneMenu>
et voici ma classe java :

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
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
 
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
 
package controleurs;
 
import java.util.ArrayList;
import java.util.List;
import javax.annotation.Resource;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
import javax.transaction.UserTransaction;
import models.Grades;
import models.Hotels;
import models.Pays;
import models.Villes;
 
/**
 *
 * @author MUSTAPHA
 */
@ManagedBean
@RequestScoped
public class CtrHotels {
    @PersistenceContext
    EntityManager em;
    @Resource private UserTransaction utx;
 
    Hotels hotel=new Hotels();
 
    List<Pays> listePays=new ArrayList<Pays>();
    List<Villes> listeVilles=new ArrayList<Villes>();
 
    List<Grades> listeGrades=new ArrayList<Grades>();
 
    public Hotels getHotel() {
        return hotel;
    }
 
    public void setHotel(Hotels hotel) {
        this.hotel = hotel;
    }
public String addHotel(){
    try {
        utx.begin();
        em.persist(hotel);
        em.flush();
        utx.commit();
    } catch (Exception e) {
        e.printStackTrace();
    }
    return "resultatAjoutHotel";
}
 
    public List<Pays> getListePays() {
 
        listePays=em.createNamedQuery("Pays.findAll").getResultList();
        return listePays;
    }
 
    public void setListePays(List listePays) {
        this.listePays = listePays;
    }
 
    public List<Villes> getListeVilles() {
 
        return listeVilles;
    }
 
    public void setListeVilles(List<Villes> listeVilles) {
        this.listeVilles = listeVilles;
    }
 
 
    public List<Grades> getListeGrades() {
        listeGrades=em.createNamedQuery("Grades.findAll").getResultList();
        return listeGrades;
    }
 
    public void setListeGrades(List<Grades> listeGrades) {
        this.listeGrades = listeGrades;
    }
public void remplirListeVille(){
 
         Query req=em.createNamedQuery("Villes.findByIdPays");
    req.setParameter("idPays", hotel.getPaysHotel());
    listeVilles=req.getResultList();
}
 
 
}

j'ai deja utilisé la balise :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
<f:ajax event="change" render="villes" />
mais toujours la méme chose

merci de me répondre .