我正在使用primefaces schedule,当对话框弹出时,我需要从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();

            }



SelectOneMenu的xhtml:


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

最佳答案

尝试将代码更改为此

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


这将打给

setChauffeur(Chauffeur c)


在您的菜豆上。请注意,在这种情况下,您将需要定义converter,因为它不是Java基本类型(int,String等)。

关于java - 传递SelectOneMenu值以在JSF/Primefaces中添加功能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/62272647/

10-13 03:40