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:
Atributo | Descripción | Valor por defecto |
---|---|---|
event | Tipo de evento soportado por el componente | Evento principal del componente |
execute | Componentes que deberan pasar por ejecución en la llamada Ajax | @this |
render | Componentes 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:
@all | Todos los componentes |
@none | Ningún componente |
@this | El componente que ha lanzado la llamada Ajax |
@form | El 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.