Ajax con JSF 2

Tal como comenté en el artículo sobre las novedades JSF 2 quería dejar el soporte Ajax incorporado en JSF 2 para un artículo separado. No tanto por su longitud sino por su relevancia. De nuevo, este no es un artículo estilo tutorial o de presentación de las novedades. Es más bien unos apuntes casi personales que cuelgo aquí para tenerlos a manos. Y si alguien saca algún provecho, bienvenido sea.
La base de las novedades de JSF 2 respecto a Ajax es la incorporación del mismo en la especificación, y concretamente de una etiqueta determinada y muy autoexplicativa:<f:ajax>

Puede aparecer de dos maneras:

  • Dentro de un componente: añade una acción Ajax al componente.
  • Englobando varios componentes: añade una acción Ajax a todos los componentes englobados que soporten eventos.Atributos:
AtributoDescripciónValor por defecto
eventTipo de evento soportado por el componenteEvento principal del componente
executeComponentes que deberan pasar por ejecución en la llamada Ajax@this
renderComponentes que se repintaran de nuevo en la página@none

Los atributos probablemente más importantes son render y execute que indican cuales de los componentes de la página se utilizaran durante la llamada Ajax. Una petición Ajax no envia todos los datos de la página ni la actualiza completamente (una de las ventajas de Ajax es lo que se conoce como partial view update).En ambos casos se puede indicar una lista de identificadores separados por espacios (correspondientes al atributo id de los componentes). También se puede indicar una expresión que resuelva una lista de identificadores. Finalmente hay una serie de palabras clave:

@allTodos los componentes
@noneNingún componente
@thisEl componente que ha lanzado la llamada Ajax
@formEl formulario que incluye este componente

Así que si nos fijamos en los valores por defecto vemos que se opta por un minimalismo. Sólo se envia el propio componente y no se actualiza nada de regreso.

Referencias