Trabajando actualmente con JSF y RichFaces he encontrado algunas "cosas" que no me han gustado, cosas que pudieran ser simples de realizar con un javaScript o con otro lenguaje de programación pero en JSF y RichFaces se ha vuelto todo un dolor de cabeza. En esta ocasión estoy desplegando información en un rich:dataTable y necesitaba colocar un checkBox para cada uno de los registros que se desplegaran en la tabla:
Al seleccionar uno de los registros y navegar con el paginador de la tabla, ¡sorpresa! el valor del checkBox seleccionado había desaparecido, total no podía navegar por los registros de la tabla sin que estos perdieran su valor de selección, así que después de investigar, leer y --porque no decirlo-- ayuda y sugerencias de algunos compañeros que trabajan con las mismas tecnologías encontré que se debe de agregar una línea al checkBox, esta línea es un a4j:support
y dentro de él, colocar algunos atributos, resuelto mi problema quedo así:
El secreto acá son los atributos ajaxSingle="true" esto nos servirá para que nuestro componente sea capaz de enviar una petición tipo ajax (aunque el componente no soporte el ajax como tal, esto hace que se envíe el formulario completo pero solo el componente se procesa como tal), y el atributo status="1" que es el que nos mantendrá el valor del checkBox.
Disfrútenlo y espero que les sirva tanto como me sirvió a mí!!!