Jsf p:dialog不从p:schedule中选择日期

Jsf p:dialog不从p:schedule中选择日期,jsf,primefaces,dialog,Jsf,Primefaces,Dialog,我的日程安排不正常。当我点击一个日期时,它会显示一个带有开始日期和结束日期的弹出窗口。但它不会在弹出窗口中拾取日期。我遵循showcase上的示例,但当弹出窗口出现时,日期字段为空 appointment.xhtml <h:form prependId="false"> <p:schedule id="schedule" value="#{Appointment.eventModel}" widgetVar="mysched

我的日程安排不正常。当我点击一个日期时,它会显示一个带有开始日期和结束日期的弹出窗口。但它不会在弹出窗口中拾取日期。我遵循showcase上的示例,但当弹出窗口出现时,日期字段为空

appointment.xhtml

 <h:form prependId="false">
  <p:schedule id="schedule"
            value="#{Appointment.eventModel}"
            widgetVar="myschedule"
            timeZone="GMT+2">

    <p:ajax event="dateSelect"
            listener="#{Appointment.onDateSelect}"
            oncomplete="PF('eventDialog').show();" />

    <p:ajax event="eventSelect"
            listener="#{Appointment.onEventSelect}"
            update="eventDetails"
            oncomplete="PF('eventDialog').show();" />
</p:schedule>

<p:dialog widgetVar="eventDialog"
          header="Appointment Details"
          showEffect="clip"
          hideEffect="clip">

    <h:panelGrid id="eventDetails" columns="2">
        <p:outputLabel for="title" value="Titles:" />
        <p:inputText id="title"
                     value="#{Appointment.event.title}"
                     required="true" />

        <p:outputLabel for="from" value="From:" />
        <p:calendar id="from"
                    value="#{Appointment.event.startDate}"
                    timeZone="GMT+2" pattern="dd/MM/yyyy HH:mm" />

        <p:outputLabel for="to" value="To:" />
        <p:calendar id="to"
                    value="#{Appointment.event.endDate}"
                    timeZone="GMT+2" pattern="dd/MM/yyyy HH:mm" />


        <p:commandButton type="reset" value="Reset" />
        <p:commandButton id="addButton" value="Save"
                         actionListener="#{Appointment.addEvent}"
                         oncomplete="PF('myschedule').update();
                                     PF('eventDialog').hide();"/>
    </h:panelGrid>
</p:dialog>
</h:form>

所以,如果你不使用对话框,而是使用一个普通的jsf面板,它就可以工作了?我没有尝试过这个。但我的要求是在对话框中进行,我不是说你最终不应该使用对话框,但是如果你这样标记它,你的意思是间接地说它在没有对话框的情况下工作。顺便说一句,您的对话框没有拾取任何内容,其中的组件可以(或不可以)将内容缩小到真正的原因,这就是调试和创建对话框的全部内容。作为提示:检查
p:schedule
中两个ajac标记之间的差异,首先删除
prependId='false'
。它应该只在非常非常特殊的情况下使用,像我们这样的普通人永远不会遇到这种情况
public class Appointment implements AppointmentInterface {

    public ScheduleModel getEventModel() {
        eventModel = new DefaultScheduleModel();
        return eventModel;
    }

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

    public void onEventSelect(SelectEvent selectEvent) {
        event = (ScheduleEvent) selectEvent.getObject();
    }

    public void addEvent(ActionEvent actionEvent) {
        if (event.getId() == null) {
            eventModel.addEvent(event);
        } else {
            eventModel.updateEvent(event);
        }

        event = new DefaultScheduleEvent();
    }
}