-2

当我在控制台中打印所选项目时,它始终返回为 null

这是在我的 ManagedBean 中创建 SelectItem 的方法:

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 ;
}

这是我模型中的变量,其中包含 getter 和 setter 以及构造函数:

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
  ....   }

从数据库中获取变量的方法(列表)

@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}" />
4

1 回答 1

0

乍一看,我发现问题出在value您的两个 selectOneMenu 属性中:

        <h:selectOneMenu id="listeNomPrenom" title="Nom et Prenom"  value="{#programMB.np}">
               <f:selectItems value="#{moniteurMB.allNomPrenom}" />
         </h:selectOneMenu>

和:

        <h:selectOneMenu id="ListeMatricules" title="Matricules" value="{#programMB.program.matricule}">
                 <f:selectItems value="#{vehiculeMB.allMatricules}"  />
         </h:selectOneMenu>

在他们两个中,你只是#放错了地方。更改value="{#programMB.np}"value="#{programMB.np}"value="{#programMB.program.matricule}"value="#{programMB.program.matricule}"它应该适合你!

于 2013-05-10T06:16:32.147 回答