Primefaces p: календарь со значением p: ajax не обновляется (задержка в один шаг)
Я хочу вызвать бин после выбора даты вp:calendar
, В моей настройке у меня есть@Named @ViewScoped
Боб, классObWithDate
это@Entity
с полем датыvalidFrom.
<code><h:form id="fUser"> <p:dataTable id="dt" var="cum" value="#{myBean.listObWithDates}"> <p:column> <p:calendar id="cValidFrom" value="#{cum.validFrom}"> <p:ajax event="dateSelect" listener="#{myBean.update(cum)}" update=":fUser:dt"/> </p:calendar> </p:column> </p:dataTable> </h:form> </code>
Хорошо, что метод бобовupdate(ObWithDate myO)
вызывается с правильным объектом каждый раз, когда я выбираю дату. Плохо то, чтоmyO.validFrom
не имеет правильного значения. Это всегдаone step behind:
Эта проблема сводит меня с ума, я обнаружил несколько проблем с неправильно обновленными значениями, а также некоторые оp:calendar
, Большинство из них предлагают использовать атрибутselectListener="#{calendarBean.handleDateSelect}"
сhandleDateSelect(DateSelectEvent event)
метод. Но я хочу вызвать мой метод, так как я хочу передать текущий экземпляр переменной.
p:dataTable
and only using p:calendar
the issue is still the same.
The wrong value of the debug output can be observed for the method-Object update(ObWithDate myO)
as well for the corresponding entry in myBean.listObWithDates
.
<p:ajax immediate="true" .../>
does not solve this issue.
Update MattHandy мне очень помог, итоговый вопросHow to get the corresponding list item in the ajax call inside the beans method? сформулировано в последующемJSF p: календарь в p: dataTable: как получить строку события p: ajax dateSelect.