Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java primefaces计划:在移动/调整事件侦听器上编辑事件详细信息_Java_Jsf 2_Primefaces - Fatal编程技术网

Java primefaces计划:在移动/调整事件侦听器上编辑事件详细信息

Java primefaces计划:在移动/调整事件侦听器上编辑事件详细信息,java,jsf-2,primefaces,Java,Jsf 2,Primefaces,我正在摆弄(使用3.3.1版),我需要在移动/调整事件侦听器上调整计划的iTen的一些值。(我将使用“scheduled item”来提及数据模型对象“schedule’s events”,并为用户交互时API触发的响应保留术语“event”) 因此,每当用户在界面上移动/调整计划项目的大小时,注册的事件侦听器就会启动,显示日增量、分钟增量消息,如showcase示例所示 但是我需要对这个项目做一些修改,即: a) 确保计划项目不会在周末开始/结束(也是假日,但我们可以忽略这一点)。将项目的开始

我正在摆弄(使用3.3.1版),我需要在移动/调整事件侦听器上调整计划的iTen的一些值。(我将使用“scheduled item”来提及数据模型对象“schedule’s events”,并为用户交互时API触发的响应保留术语“event”)

因此,每当用户在界面上移动/调整计划项目的大小时,注册的事件侦听器就会启动,显示日增量、分钟增量消息,如showcase示例所示

但是我需要对这个项目做一些修改,即:

a) 确保计划项目不会在周末开始/结束(也是假日,但我们可以忽略这一点)。将项目的开始/结束向后或向前移动到上一个工作日(如果在周末开始)或下一个工作日(如果在周末结束)

b) 使项目捕捉到最接近的一刻钟

c) 确保计划项目不会在上午700点之前或晚上2100点之后开始/结束。如果超过这些限制,则将开始/结束时间缩短到这些限制

并在用户界面上显示结果更改。但是我无法在事件侦听器方法期间编辑数据模型

以下是计划标签:

                    <p:schedule value="#{scheduleController.eventModel}"
                        widgetVar="myschedule" view="agendaWeek" allDaySlot="false"
                        slotMinutes="15" firstHour="7" showWeekends="FALSE"
                        leftHeaderTemplate="prev,next" rightHeaderTemplate=""
                        minTime="7am" maxTime="21pm" timeFormat="dd/MM H:mm{ - dd/MM H:mm}"
                        axisFormat="HH" timeZone="#{rotulo.timeZone}">

                        <p:ajax event="dateSelect"
                            listener="#{scheduleController.onDateSelect}"
                            update="eventDetails" oncomplete="eventDialog.show()" />
                        <p:ajax event="eventSelect"
                            listener="#{scheduleController.onEventSelect}"
                            update="eventDetails" oncomplete="eventDialog.show()" />
                        <p:ajax event="eventMove"
                            listener="#{scheduleController.onEventMove}" update="messages" />
                        <p:ajax event="eventResize"
                            listener="#{scheduleController.onEventResize}" update="messages" />

                    </p:schedule>

正是在这个
doBusinessLogic()
中,我将调整时间值。我如何才能使对
defaultschedulevent
所做的更改反映在计划的数据模型上?

代码很好,通过调试数据模型,业务逻辑真正正确地更新了计划项

问题出在视图更新中。p:ajax调用的update属性应该是整个表单,而不仅仅是eventDetails或消息

因此,通过将jsf页面更改为:

 <p:schedule value="#{scheduleController.eventModel}"
                        widgetVar="myschedule" view="agendaWeek" allDaySlot="false"
                        slotMinutes="15" firstHour="7" showWeekends="FALSE"
                        leftHeaderTemplate="prev,next" rightHeaderTemplate=""
                        minTime="7am" maxTime="21pm" timeFormat="dd/MM H:mm{ - dd/MM H:mm}"
                        axisFormat="HH" timeZone="#{rotulo.timeZone}">

                        <p:ajax event="dateSelect"
                            listener="#{scheduleController.onDateSelect}"
                            update="MYFORM" oncomplete="eventDialog.show()" />
                        <p:ajax event="eventSelect"
                            listener="#{scheduleController.onEventSelect}"
                            update="MYFORM" oncomplete="eventDialog.show()" />
                        <p:ajax event="eventMove"
                            listener="#{scheduleController.onEventMove}" update="MYFORM" />
                        <p:ajax event="eventResize"
                            listener="#{scheduleController.onEventResize}" update="MYFORM" />

                    </p:schedule>


我能够在屏幕上看到事件的变化。

一些可能与手头的问题有关的研究:解决方案还提出了一个问题:为什么侦听器响应不使用事件侦听器代码中修改的数据更新视图,而是使用其他数据。也许这与JSF阶段有关,但我无法理解。
 <p:schedule value="#{scheduleController.eventModel}"
                        widgetVar="myschedule" view="agendaWeek" allDaySlot="false"
                        slotMinutes="15" firstHour="7" showWeekends="FALSE"
                        leftHeaderTemplate="prev,next" rightHeaderTemplate=""
                        minTime="7am" maxTime="21pm" timeFormat="dd/MM H:mm{ - dd/MM H:mm}"
                        axisFormat="HH" timeZone="#{rotulo.timeZone}">

                        <p:ajax event="dateSelect"
                            listener="#{scheduleController.onDateSelect}"
                            update="MYFORM" oncomplete="eventDialog.show()" />
                        <p:ajax event="eventSelect"
                            listener="#{scheduleController.onEventSelect}"
                            update="MYFORM" oncomplete="eventDialog.show()" />
                        <p:ajax event="eventMove"
                            listener="#{scheduleController.onEventMove}" update="MYFORM" />
                        <p:ajax event="eventResize"
                            listener="#{scheduleController.onEventResize}" update="MYFORM" />

                    </p:schedule>