Primefaces p: calendário com p: valor ajax não atualizado (atraso de um passo)
Eu quero chamar um bean depois que uma data é selecionada em ump:calendar
. Na minha configuração eu tenho um@Named @ViewScoped
Feijão, a turmaObWithDate
é um@Entity
com um campo de dataválido de.
<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>
O bom é que o método do feijãoupdate(ObWithDate myO)
é chamado com o objeto correto toda vez que eu seleciono uma data. O ruim é quemyO.validFrom
não tem o valor correto. É sempreum passo atrás:
Esse problema me deixa louco, eu encontrei vários problemas com valores não atualizados corretamente e também alguns sobrep:calendar
. A maioria deles sugere o uso do atributoselectListener="#{calendarBean.handleDateSelect}"
com umhandleDateSelect(DateSelectEvent event)
método. Mas eu quero chamar meu método desde que eu quero passar a instância atual da variável.
p:dataTable
e usando apenasp:calendar
a questão ainda é a mesma.oerrado valor da saída de depuração pode ser observado para o método-Objectupdate(ObWithDate myO)
bem como para a entrada correspondente emmyBean.listObWithDates
.<p:ajax immediate="true" .../>
não resolve esse problema.Atualizar MattHandy me ajudou muito, a questão resultanteComo obter o item da lista correspondente na chamada ajax dentro do método beans? é formulado no acompanhamentoJSF p: calendário em p: dataTable: como obter a linha do evento p: ajax dateSelect.