Introduccion a Java Server Faces

JavaServer Faces (JSF) es otro entorno de desarrollo de aplicaciones web en Java, diferente al de los Servlets que hemos visto hasta ahora. Esta tecnología está diseñada para simplificar el desarrollo web con Java, y fomenta la separación de la presentación de las interfaces de usuario con la lógica de la aplicación. JSF utilizaba JSPs añadiendo librerías que contienen componentes de alto nivel (menús, paneles, campos de texto,…), cada uno de estos componentes puede interactuar con el servidor de forma independiente. En la actualidad, se utilizan "Facelets" que son páginas con extensión .xhtml que sirven para lo mísmo que las JSF pero son una forma más sencilla de trabajar. Como JavaServer Faces es un "framework" (marco de referencia), simplifica el diseño de la estructura de la aplicación y también proporciona librerías que hacen más facil el desarrollo de la aplicación.

Con JavaServer Faces es posible utilizar Ajax (Asynchronous JavaScript and XML). Ajax es un enfoque en el que las diferentes acciones que solicita el usuario se realizan dentro de una misma página, de tal manera que el servidor no genera una nueva página sino sólo los datos. En las aplicaciones tradicionales, cada petición al servidor hace que éste genere una nueva página HTML/XHTML. Las aplicaciones RIA (Rich Internet Applications), como lo es JSF, intentan simular las aplicaciones de escritorio y, cuando usan Ajax, son más rápidas que las aplicaciones tradicionales.



La tecnología Java Server Faces proporciona:

- Un conjunto de componentes de Interfaz de Usuario predefinidos (botones, menús, campos de texto,…), listos para agregarse a una página web. Estos componentes se representan como objetos con un estado.

- Oyentes y manejadores de eventos (pulsación de un botón, cambio en el valor de un campo,…), los cuales permiten conectar facilmente los eventos generados del lado del cliente con código de la aplicación en el servidor.

- Validador y convertidor de datos en el lado del servidor. Validar los datos de los componentes individuales permite informar de cualquier error antes de que éstos se envíen a procesar al servidor. El convertidor permite al usuario trabajar con datos en diferentes unidades.

JSF contiene dos importantes componentes de software: las Tag Libraries y los Managed Beans.