ajax jsf primefaces calendar converter

Primefaces Calendar with Converter no se actualiza correctamente con el evento ajax "valueChange"



jsf (2)

Encontré la causa del problema: el convertidor recibía texto del campo de entrada que no podía convertir correctamente. Aparentemente, esto lleva a una interrupción del ciclo de vida JSF estándar y se establece el valor anterior en lugar del nuevo. Con una entrada con el formato correcto, todo funciona como se espera.

Quiero que mi p:calendar funcione tanto haciendo clic en una fecha en el calendario emergente, como editando la fecha directamente en el campo de entrada de texto.

Esto funciona bien:

<p:calendar value="#{myBackingBean.date}"> <p:ajax event="valueChange" listener="#{myBackingBean.updateDate()}" /> <p:ajax event="dateSelect" listener="#{myBackingBean.selectDate()}" /> </p:calendar>

Sin embargo, tan pronto como agregue un convertidor (ver más abajo), la nueva fecha ya no está configurada para eventos "valueChange" (cuando la fecha se edita con el teclado en el campo de texto), aunque la nueva fecha se haya convertido correctamente, pero la fecha que se establece en el bean de respaldo es el valor anterior, no el nuevo que edité en el campo de texto:

<p:calendar value="#{myBackingBean.date}"> <f:converter converterId="myLocalDateConverter"/> <p:ajax event="valueChange" listener="#{myBackingBean.updateDate()}" /> <p:ajax event="dateSelect" listener="#{myBackingBean.selectDate()}" /> </p:calendar>

¿Cómo puedo hacer que esto funcione en conjunto?