Remplir la liste déroulante a partir d'une bd

Résolu
mondila Messages postés 77 Statut Membre -  
mondila Messages postés 77 Statut Membre -
Bonjours,

j'ai une liste déroulante que je veux remplir via une base de donnée.est ce que quelqu'un a une idée là dessus,merci

Voici mon code:
JSF:


<h:selectOneMenu id="id6" value="#{villeBean.intitule}" style="width:200px">
<f:selectItem value="#{villeBean.mesVilles}" />
</h:selectOneMenu>

Class villeBean



//Service Auto-injected
@Autowired
VilleService villeService;

int idVille;
private String intitule;
private List<SelectItem> mesVilles;
private List<Ville> villeListe;

public List<Ville> getMaList(){
List<Ville> liste = villeService.listVille();
if(liste.size()!=0){
for(int i=0; i<liste.size();i++){
this.villeListe = liste;
}
}
return villeListe;
}

public List<SelectItem> getMesVilles() {
if(mesVilles!=null){
mesVilles = new ArrayList<SelectItem>();
for(Ville val : getMaList()){
mesVilles.add(new SelectItem(val.getIntitule()));
}
}
return mesVilles;
}

fonction listVille()


@Override
public List<Ville> listVille() {
return villeDao.findAll();
}

fonction finAll()

@SuppressWarnings("unchecked")
@Override
public List<Ville> findAll() {
return sessionFactory.getCurrentSession().createQuery("From Ville").list();
}

1 réponse

  1. mondila Messages postés 77 Statut Membre 1
     
    le problème est résolu,voici la solution
    jsf:

    <h:form>
    <h:panelGrid>
    <h:selectOneMenu id="id6" value="#{villeBean.idVille}"
    style="width:200px">
    <f:selectItems value="#{villeBean.mesVilles}" />
    </h:selectOneMenu>
    </h:panelGrid>
    </h:form>

    class Bean:

    private List<SelectItem> mesVilles = new ArrayList<SelectItem>();
    private List<Ville> villeListe;

    // Constructor
    public VilleBean() {
    super();
    }

    @PostConstruct
    public void init() {
    getListIemsVilles();
    }

    public List<Ville> getMaList() {
    List<Ville> liste = villeService.listVille();
    return liste;
    }

    public void getListIemsVilles() {

    for (Ville val : getMaList()) {
    this.mesVilles.add(new SelectItem(val.getIdVille(),val.getIntitule()));
    }
    }
    0