JSF

Java Server Faces
Información sobre la plantilla
Parte de la familia Java Server Faces
Jsf.jpg
Versiones1.1 , 1.1, 1.2, 2.0
Última versión estable2.0
Sistemas Operativos compatiblesMáquina Virtual de Java
Sitio web
www.javaserverfaces.org

JSF (Java Server Faces) es un marco de trabajo para crear aplicaciones java J2EE basadas en el patron MVC de tipo 1. JSF nos permite desarrollar rápidamente aplicaciones de negocio dinámicas en las que toda la lógica de negocio se implementa en java, o es llamada desde java, creando páginas para las vistas muy sencillas (salvo que introduzcamos mucha maquetación HTML o Javascript). Ees un framework de desarrollo basado en el patrón MVC (Modelo Vista Controlador). Al igual que Struts, JSF pretende normalizar y estandarizar el desarrollo de aplicaciones web. Hay que tener en cuenta JSF es posterior a Struts, y por lo tanto se ha nutrido de la experiencia de este, mejorando algunas sus deficiencias.

Objetivos

Estos objetivos de diseño representan el foco de desarrollo de JSF:

  1. Definir un conjunto simple de clases base de Java para componentes de la interfaz de usuario, estado de los componentes y eventos de entrada. Estas clases tratarán los aspectos del ciclo de vida de la interfaz de usuario, controlando el estado de un componente durante el ciclo de vida de su página.
  2. Proporcionar un conjunto de componentes para la interfaz de usuario, incluyendo los elementos estándares de HTML para representar un formulario. Estos componentes se obtendrán de un conjunto básico de clases base que se pueden utilizar para definir componentes nuevos.
  3. Proporcionar un modelo de JavaBeans para enviar eventos desde los controles de la interfaz de usuario del lado del cliente a la aplicación del servidor.
  4. Definir APIs para la validación de entrada, incluyendo soporte para la validación en el lado del cliente.
  5. Especificar un modelo para la internacionalización y localización de la interfaz de usuario.
  6. Automatizar la generación de salidas apropiadas para el objetivo del cliente, teniendo en cuenta todos los datos de configuración disponibles del cliente, como versión del navegador...


Componentes

  • Un conjunto de APIs para representar componentes de una interfaz de usuario y administrar su estado, manejar eventos, validar entrada, definir un esquema de navegación de las páginas y dar soporte para internacionalización y accesibilidad.
  • Un conjunto por defecto de componentes para la interfaz de usuario.
  • Dos bibliotecas de etiquetas personalizadas para JavaServer Pages que permiten expresar una interfaz JavaServer Faces dentro de una página JSP.
  • Un modelo de eventos en el lado del servidor.
  • Administración de estados.
  • Beans administrados.


Carácterísticas

  • Utiliza páginas JSP para generar las vistas, añadiendo una biblioteca de etiquetas propia para crear los elementos de los formularios HTML.
  • Asocia a cada vista con formularios un conjunto de objetos java manejados por el controlador (managed beans) que facilitan la recogida, manipulación y visualización de los valores mostrados en los diferentes elementos de los formularios.
  • Introduce una serie de etapas en el procesamiento de la petición, como por ejemplo la de validación, reconstrucción de la vista, recuperación de los valores de los elementos, etc.
  • Utiliza un sencillo fichero de configuración para el controlador en formato xml
  • Es extensible, pudiendo crearse nuevos elementos de la interfaz o modificar los ya existentes.
  • Forma parte del estándar J2EE. En efecto, hay muchas alternativas para crear la capa de presentación y control de una aplicación web java, como Struts y otros frameworks, pero solo JSP forma parte del estándar.


Ventajas

  • El código JSF con el que creamos las vistas (etiquetas jsp) es muy parecido al HTML estándar. Lo pueden utilizar fácilmente desarrolladores y diseñadores web.
  • JSF se integra dentro de la página JSP y se encarga de la recogida y generación de los valores de los elementos de la página
  • JSF resuelve validaciones, conversiones, mensajes de error e internacionalización (i18n)
  • JSF permite introducir Javascript en la página, para acelerar la respuesta de la interfaz en el cliente (navegador del usuario).
  • JSF es extensible, por lo que se pueden desarrollar nuevos componentes a medida, También se puede modificar el comportamiento del framework mediante APIs que controlan su funcionamiento.


Riesgos en el desarrollo JSF

Antes de comenzar el desarrollo con JSF debemos conocer aquellos puntos que lo pueden hacer más largo de lo realmente necesario. Entre ellos la experiencia nos muestra los siguientes:

  • Utilizar el alicate para clavar. JSF es una herramienta y como tal tiene una forma de uso. Si nos empeñamos en seguir desarrollando las páginas como siempre, intentando adaptar JSF al modo al que habitualmente desarrollamos en vez de adaptarnos a JSF complicaremos el desarrollo
  • Abuso del javascript. JSF permite utilizar javascipt para hacer más rápida una página html, evitando peticiones al servidor. Sin embargo la introducción de javascript en la página complica y alarga los desarrollos con JSF, y en general con jsp. La capa javascript añade etapas adicionales a la aplicación, que hace más difícil su depurado. Un consejo: la página debería poderse ejecutar sin pérdida de funcionalidad (sólo de rendimiento si se desactiva el javascript).
  • La maquetación compleja también complica el desarrollo ya que obliga a utilizar muchas etiquetas y atributos, especialmente en los datatables. Si la maquetación de nuestras páginas es compleja deberíamos pensar en crear componentes JSF a medida que simplifiquen dicho trabajo.


Implementaciones de JSF

Enlaces Externos

  • Java Server Faces.org [1].

Fuentes

  • Introducción a JSF. [citado 2011 junio,20]; Disponible en:[2].
  • Wikipedia.org. [citado 2011 junio,20]; Disponible en:[3].
  • Desarrollo Web. [citado 2011 junio,20]; Disponible en:[4].
  • Introducción a la Tecnología JSF [citado 2011 junio,20]; Disponible en:[5].