Установите для p: календарной даты и времени значения startSateduleEvent, startDate и endDate - PullRequest
0 голосов
/ 05 июля 2018

У меня есть p:schedule, который имеет p:ajax события dateSelect. Откроется всплывающее окно для ввода DefaultScheduleEvent - title, startDate, endData и т. Д. Я сослался на код здесь .

Однако, когда я нажимаю p:commandButton, который переходит к actionListener в ManagedBean, startDate и endDate не устанавливаются в bean-компоненте в соответствии с пользовательским вводом. Значения по умолчанию сохраняются. Как я могу взять ввод пользователя и использовать его в Бине?

Внешний конец xhtml:

<p:panel header="Calendar" style="height:100%">
                    <p:schedule value="#{studentCalendarBean.eventModel}" leftHeaderTemplate="prev,next" draggable="false" rightHeaderTemplate="" widgetVar="viewSchedule" timeFormat="">
                        <p:ajax event="dateSelect" process="@this" listener="#{studentCalendarBean.onDateSelect}" update="addEventDetails" oncomplete="PF('eventAddDialog').show();" />
                    </p:schedule>
                    <p:dialog widgetVar="eventAddDialog" header="Request New Lesson" showEffect="clip" hideEffect="clip">
                    <h:panelGrid id="addEventDetails" columns="2">
                        <p:outputLabel for="title-a" value="Title:" />
                        <p:inputText id="title-a" value="#{studentCalendarBean.event.title}" required="true" valueChangeListener="#{studentCalendarBean.event.title}"/>

                        <p:outputLabel for="from-a" value="From:" />
                        <p:calendar id="from-a" value="#{studentCalendarBean.event.startDate}" timeZone="GMT+2" pattern="dd/MM/yyyy HH:mm" mask="99/99/9999 99:99">
                            <p:ajax event="dateSelect" listener="#{studentCalendarBean.startDateChanged}" />
                        </p:calendar>

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

                        <p:commandButton type="reset" value="Reset" />
                        <p:commandButton id="addEventButton" value="Schedule" actionListener="#{studentCalendarBean.scheduleNewEvent}" oncomplete="PF('viewSchedule').update();PF('eventAddDialog').hide();" />
                    </h:panelGrid>
                </p:dialog>
</p:panel>

Управляемый код бина:

@Named
@SessionScoped public class StudentCalendarBean implements Serializable {

private static final long serialVersionUID = 4421935956943227260L;

private ScheduleModel eventModel;

private ScheduleEvent event;

@PostConstruct
public void init() {
    event = new DefaultScheduleEvent();
    //populate events calendar
    logger.info("StudentCalendarBean: Initializing");
    eventModel = getAllEvents(); //defined
}

public void scheduleNewEvent() {
    logger.info("StudentCalendarBean: Creating new schedule");
    //Having problem here - startDate and endDate are set to Default!!!!
    if (event.getId() == null) {
        Schedule newSchedule = new Schedule();
        if (validateEvent(event)) {
            newSchedule = newEventToNewSchedule(event);
        }
        //update database
        studentCalendarLogic.addNewSchedule(newSchedule);
        //update view
        eventModel.addEvent(event);
    }
    //reset default event
    event = new DefaultScheduleEvent();
}

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


}

1 Ответ

0 голосов
/ 07 июля 2018

Я вижу ваше призвание ...

value="#{studentCalendarBean.event.title}"

Но я не вижу установщика / получателя для события в вашем studentCalendarBean, так как же он может получить значение из события?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...