bonjour je suis débutante en jsf ,mon probleme c'est que je veux récupérer les données de la base dans un datatable,mais il m'affiche un erreurs dans l'evenement :selection.voila mon code.
code XHTML:
1 2 3 4 5 6
| <p:dataTable id="sos" var="societe" value="#{societeBean.toutes_les_sos}" paginator="true" rows="10" selection="#{societeBean.idSos}">
<p:column selectionMode="multiple" style="width:18px" />
<p:column headerText="Société">
#{societe.raisonSociale}
</p:column>
</p:dataTable> |
classe Bean:
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
|
public class SocieteBean {
private Long idSos;
private List<Societe> toutes_les_sos;
public Long getIdSos() {
return idSos;
}
public void setIdSos(Long idSos) {
this.idSos = idSos;
}
public List<Societe> getToutes_les_sos() {
return toutes_les_sos;
}
public void setToutes_les_sos(List<Societe> toutes_les_sos) {
this.toutes_les_sos = toutes_les_sos;
}
@PostConstruct
public void init(){
toutes_les_sos= new DaoSociete().findAll();
}
} |
classe Dao:
public class DaoSociete {
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
| private EntityManagerFactory emf = Persistence.createEntityManagerFactory("EMALL_JPA");
private EntityManager em = emf.createEntityManager();
public void ajouter(Societe societe){
try{
this.begin();
em.persist(societe);
this.commit();
}catch(Exception e){
System.out.println("Erreur lors de l'ajout de la société");
e.printStackTrace();
}
}
public void delete(Societe societe){
try{
this.begin();
em.remove(societe);
this.commit();
}catch(Exception e){
System.out.println("Erreur lors de la suppression de la société");
e.printStackTrace();
}
}
public Societe find(long id){
return em.find(Societe.class, id);
}
public void update(Societe societe){
try{
this.begin();
Societe soc=em.find(Societe.class,societe.getId());
soc.setRaisonSociale(societe.getRaisonSociale());
em.merge(soc);
this.commit();
}catch(Exception e){
System.out.println("Erreur lors de la modification de la societe");
e.printStackTrace();
}
}
public List<Societe> findAll(){
Query query = em.createQuery("select c from Societe c");
return (List<Societe>) query.getResultList();
}
public Societe findByDescription(String description){
try {
Query query = em.createQuery("select c from Societe c where c.raisonSociale=:desc");
query.setParameter("desc", description);
return (Societe)query.getSingleResult();
}catch(Exception e){
e.printStackTrace();
return null;
}
} |
erreur:
DataModel must implement org.primefaces.model.SelectableDataModel when selection is enabled.
merci d'avance.
Partager