Когда я проверить, напечатав выбранный элемент в консоли, он всегда возвращается в нульSelectItems из SelectOneMenu всегда нуль
здесь метод, который создает SelectItem в моем ManagedBean:
public List<String> getlisteMatricule() throws HibernateException
{
List<String> matricules = new ArrayList<String>();
for (Vehicule v : vehiculedao.getAll())
{
matricules.add(v.getMatricule());
System.out.println(v.getMatricule());
}
return matricules ;
}
public List<SelectItem> getAllMatricules()
{
List<SelectItem> options = new ArrayList<SelectItem>();
List<String> listMatricules = getlisteMatricule();
for (String mat : listMatricules)
{
options.add(new SelectItem(mat));
System.out.println("items = " + new SelectItem(mat));
}
return options ;
}
И вот мои переменные в моей модели, которые содержат сорбент и сеттеры и конструктор:
public class Program
{
private int id_progf;
private int nbrHeure;
private float montantGlobal;
private String commentaire;
private int cin_mon;
private String matricule;
private int cin_cand;
///gettersand setters
.... }
Methode, которые приносят переменные из базы данных (список)
@Override
public Vehicule getMatricule(String matricule) {
Session session = HibernateUtil.currentSession();
Vehicule v=(Vehicule)session.get(Vehicule.class, matricule);
return v;
}
И, наконец, мой файл XHTML, он содержит форму:
<h:panelGrid columns="2" >
<h:outputText value="Moniteur :" />
<h:selectOneMenu id="listeNomPrenom" title="Nom et Prenom" value="{#programMB.np}">
<f:selectItems value="#{moniteurMB.allNomPrenom}" />
</h:selectOneMenu>
<h:outputText value="Vehicule :" />
<h:selectOneMenu id="ListeMatricules" title="Matricules" value="{#programMB.program.matricule}">
<f:selectItems value="#{vehiculeMB.allMatricules}" />
</h:selectOneMenu>
<h:outputText value="Nombre heures:" />
<p:inputText value="#{programMB.program.nbrHeure}" />
</h:panelGrid>
<p:commandButton value="Save" action="#{programMB.ajouterProg}" />
Это кажется неправильным: value = "{# programMB.np}". У вас должно быть # перед фигурными скобками – user219882
Если 'vehicleuledao.getAll()' возвращает пустой список, почему именно вы думаете, что проблема в стороне JSF? Разве не логичнее, что проблема в самом деле заключается в коде, стоящем за этим методом getAll()? Все, что JSF-код является чистым шумом, и вы должны переписать вопрос таким образом, чтобы его задавали в контексте Hibernate. – BalusC
О несвязанной ноте: прекратите делать бизнес-логику в методах геттера. – BalusC