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 :
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 :
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 :
<f:ajax event="change" render="villes" />
mais toujours la méme chose 
merci de me répondre .
Partager