我正在使用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/