Después de un error de validación, las solicitudes ajax posteriores obtienen valores de los componentes de la interfaz de usuario y no de Beans

En mi aplicación basada en JSF 2 tengo un formulario que incluye (entre otros componentes de la interfaz de usuario) algunas casillas de verificación.

En las casillas de verificación he registrado solicitudes de ajax que se activan cuando se marcan. Las solicitudes de ajax solo actualizarán el valor de otra casilla de verificación en el bean de respaldo. Como resultado, la otra casilla de verificación también se marcará (cuando se vuelva a representar, ya que tomará el valor actualizado del bean de respaldo en la fase de respuesta de procesamiento).

Esto funciona bien hasta que se envía todo el formulario y se producen errores de validación. Entonces, las solicitudes de ajax todavía funcionan y cambian el valor en el bean de respaldo, pero en la fase de volver a renderizar la casilla de verificación actualizada, el valor no se toma del bean de respaldo, sino de un valor almacenado en caché que se toma de unComponentStateHelper clase.

Según tengo entendido, esto se usa para la nueva función de JSF 2 para almacenar solo cambios parciales en el árbol de componentes.

Lo que no entiendo es: ¿Cómo se relaciona esto con la fase de validación? ¿Por qué hay un valor en caché en elStateHelper¿Clase para mi casilla de verificación cuando la validación encontró errores?

Respuestas a la pregunta(1)

Su respuesta a la pregunta