gpt4 book ai didi

mysql - 表更新和 Primefaces ScheduleEvent

转载 作者:行者123 更新时间:2023-11-29 20:16:43 25 4
gpt4 key购买 nike

您好,我想请求您帮助解决我在项目中遇到的困难。我正在使用 primefaces Schedule 来执行一项任务,为此我将所有事件存储在名为议程的 MySQL 表中。我的困难涉及表格更新。当我第一次更新时,所有事情都完美工作,但其他尝试失败,因为 mySQL 找不到用于更新表中相关行的主键。这是我的支持 bean 代码

public class AgendaBean implements Serializable{
private Agenda agenda;
private String title;
private Date dateDbt;
private Date dateFin;
private ScheduleModel eventModel;
private ScheduleEvent event;
@EJB
private AgendaDao agendaDao;
public AgendaBean(){
agenda=new Agenda();
event= new DefaultScheduleEvent(nom, dateDbt, dateFin, agenda) ;
}
@PostConstruct
public void init() {
eventModel=new DefaultScheduleModel();
agendas=agendaDao.listAgenda();
for(Agenda agendItem:agendas){
String title=agendItem.getTitle();
Date dtDbt=new java.util.Date(agendItem.getDateDbt().getTime());
Date dtFin=new java.util.Date(agendItem.getDateFin().getTime());
event=(ScheduleEvent) new DefaultScheduleEvent(title, dtDbt, dtFin,agendItem);
eventModel.addEvent(event);
}
}
public void addEvent(ActionEvent actionEvent){
if(event.getId() == null)
{
agenda.setDateDbt(new java.sql.Timestamp(event.getStartDate().getTime()));
agenda.setDateFin(new java.sql.Timestamp(event.getEndDate().getTime()));
agenda.setTitle(event.getTitle());
agendaDao.creer(agenda);
}
else{
eventModel.updateEvent(event);
agenda.setDateDbt(new java.sql.Timestamp(event.getStartDate().getTime()));
agenda.setDateFin(new java.sql.Timestamp(event.getEndDate().getTime()));
agenda.setTitle(event.getTitle());
agendaDao.modifier(agenda);
}
init();
}

public void onEventSelect(SelectEvent selectEvent) {
event = (ScheduleEvent) selectEvent.getObject();
Agenda agendaFound=(Agenda)event.getData();
agenda.setDescription(agendaFound.getDescription());
agenda.setLieu(agendaFound.getLieu());
agenda.setPkIdag(agendaFound.getPkIdag());
}

public void onDateSelect(SelectEvent selectEvent) {
event = (ScheduleEvent) new DefaultScheduleEvent("", (Date) selectEvent.getObject(), (Date) selectEvent.getObject(),new Agenda());
}

}

我的查看代码如下

<h:panelGrid columnClasses="value">
<p:schedule id="schedule" value="#{agendaBean.eventModel}" widgetVar="myschedule" timeZone="GMT" process="@form" axisFormat="HH:mm" >
<p:ajax event="dateSelect" listener="#{agendaBean.onDateSelect}" update="eventDetails" oncomplete="PF('eventDialog').show();" />
<p:ajax event="eventSelect" listener="#{agendaBean.onEventSelect}" update="eventDetails" oncomplete="PF('eventDialog').show();" />
</p:schedule>
</h:panelGrid>
<p:dialog widgetVar="eventDialog" header="Event" showEffect="clip" hideEffect="clip" height="400" width="400" id="eventDetails" resizable="false" >
<h:outputLabel for="idCleAg">REF <span class="requis">*</span></h:outputLabel>
<h:inputText id="idCleAg" value="#{agendaBean.agenda.pkIdag}"/>
<br/>
<h:outputLabel for="title">title <span class="requis">*</span></h:outputLabel>
<p:inputText id="title" value="#{agendaBean.event.title}" required="true" maxlength="60" style="background:#fff;width:370px;margin-left:-4px;"/>
<h:message id="titleMessage" for="title" errorClass="erreur" />
<br/>
<h:outputLabel for="place">Place<span class="requis">*</span></h:outputLabel>
<p:inputText id="place" value="#{agendaBean.agenda.place}" required="true" maxlength="60" style="background:#fff;width:370px;margin-left:-4px;"/>
<h:message id="placeMessage" for="place" errorClass="erreur" />
<br/>
<h:outputLabel for="description">Description<span class="requis">*</span></h:outputLabel>
<p:inputTextarea id="description" value="#{agendaBean.agenda.description}" rows="10" cols="50" queryDelay="750" minQueryLength="4" required="true"/>
<h:message id="descriptionMessage" for="description" errorClass="erreur" />
<br/>
<p:outputLabel for="from" value="From:" />
<p:calendar id="from" value="#{agendaBean.event.startDate}" pattern="yyyy-MM-dd HH:mm:ss"/>
<br/>
<p:outputLabel for="to" value="To:" />
<p:calendar id="to" value="#{agendaBean.event.endDate}" pattern="yyyy-MM-dd HH:mm:ss"/>
<br/>
<p:commandButton id="addButton" value="Save" actionListener="#{agendaBean.addEvent}" update="@form" ajax="true" />
</p:dialog>

欢迎任何帮助!谢谢

最佳答案

尝试使用

public void onDateSelect(SelectEvent selectEvent) {
agenda=new Agenda();
event = (ScheduleEvent) new DefaultScheduleEvent("", (Date) selectEvent.getObject(), (Date) selectEvent.getObject(),agenda);
}

关于mysql - 表更新和 Primefaces ScheduleEvent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39721950/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com