通过SelectOneMenu值在JSF Primefaces中添加函数。

问题描述 投票:0回答:1

我正在使用primefaces计划表,当对话框窗体弹出时,我需要从SelectOneMenu中选择数据,并将它们传递给add函数,以便将它们插入到数据库中,问题是,有时它工作得很好,我可以插入它们,但当我试图添加另一个第二次插入时,我又不能工作了,你可以检查一下吗? 我需要知道我是否以错误的方式做这件事,因为我找不到问题。

Managedbean构造函数。

 @PostConstruct
        public void init() {


          Chauffeurs = new ArrayList<Chauffeur>();
          ChauffeurDispo = new dao.gsVoyage().getChauffeursDesponible(Chauffeurs);


          model = new DefaultScheduleModel();
          vDao=new dao.gsVoyage();
          voyage=new Voyage();
          try {
              listVoyage=vDao.getListVoyages();
          }catch(Exception ex) {
              ex.printStackTrace();
              FacesContext.getCurrentInstance().addMessage(null,new FacesMessage(FacesMessage.SEVERITY_ERROR,"erreur","erreur no sql"));
          }
          for(Voyage v:listVoyage) {
              DefaultScheduleEvent evt=new DefaultScheduleEvent();
              evt.setEndDate(v.getDateV());
              evt.setStartDate(v.getDateV());
              evt.setDescription(v.getChauffeurBean().getMatricule());
              evt.setData(v.getIdVoyage());
              model.addEvent(evt);

          }
      }

添加函数:

public void ajouter() {


                        try {
                            new dao.gsVoyage().addVoyage(dateV, autocar, chauffeur,chauffeur2,0);

                                  DefaultScheduleEvent evt=new DefaultScheduleEvent();
                                  evt.setEndDate(dateV);
                                  evt.setStartDate(dateV);
                                  evt.setDescription(chauffeur);
                                  model.addEvent(evt);


                            } catch (Exception e) {
                            FacesContext.getCurrentInstance().addMessage(null,
                                    new FacesMessage(FacesMessage.SEVERITY_ERROR, "Error!", e.getMessage()));
                        }


                    voyage = new Voyage();

            } 

xhtml的SelectOneMenu。


                          <label>Chauffeur  :</label><br/>

                                 <h:selectOneMenu 

                                    value="#{scheduleJava8View.chauffeur}">
                                    <f:selectItems
                                        value="#{scheduleJava8View.chauffeurDispo}"
                                        var="chauffeur" itemValue="#{chauffeur.matricule}"
                                        itemLabel="#{chauffeur.nom}" />
                                            </h:selectOneMenu>

这是我如何在xhtml中显示插入的数据。

<label>Chauffeur:</label><br/>
                          <p:inputText value="#{scheduleJava8View.voyage.chauffeurBean.matricule}" />
java jsf primefaces schedule
1个回答
0
投票

试着把你的代码改成这样

<h:selectOneMenu 
        onchange="submit()" 
        value="#{scheduleJava8View.chauffeur}">

这将使呼叫

setChauffeur(Chauffeur c)

的Bean上。请注意,在这种情况下,您需要在您的Bean上定义一个 变流器 因为它不是一个Java基本类型(int,String,...)。

© www.soinside.com 2019 - 2024. All rights reserved.