Java Server Faces (JSF) es una tecnología emergente basada en una especificación, realizada por la empresa Sun, para un Web MVC framework basado en tecnología Java.

JSF tiene un alto nivel de abstracción que permite una mayor separación entre el diseño y el código permitiendo dividir realmente el desarrollo de una aplicación en diseño y desarrollo, donde los diseñadores aunque todavía necesitan tener un conceptos básicos de la tecnología no tienen que preocuparse por la lógica de la aplicación. Por ejemplo, cuando se construye una aplicación Web no es estrictamente necesario conocer cual es la diferencia entre un POST y un GET.

JSF incluye un conjunto central de componentes y herramientas que facilitan la creación de “widgets” estándar como “text boxes” o “radio buttons”. La codificación exacta de estos componentes (usados normalmente dentro de JSP como tags, aunque pueden ser usadas otras tecnologías como XUL) es definida por la cada implementación de JSF. La comunicación entre los componentes, la entrada de datos y la validación forma parte de la tecnología, es decir, no hay que implementar nada de esto como ocurre en otras tecnologías (command-oriented frameworks) a excepción de Tapestry. La visualización de los mensaje de validación y errores de conversión también están estandarizados incluso soportan internacionalización (i18n).

La vinculación con datos (data binding) en JSF puede ser realizada mediante un JSF-managed bean (también llamado fichero code-behind, similar al concepto ASP.Net). Una pequeña modificación del lenguaje de expresiones JSTL es usada, en lugar de usar ${empresa.nombre} se codifica con #{empresa.nombre} donde empresa tiene que ser un JSF-managed bean y nombre una de sus propiedades.

La implementación de JSF mas conocida es posiblemente MyFaces ya que fue creada como parte del proceso de especificación como referencia de implementación.
Existe una implementación estándar de Sun tiene el mismo nombre que la tecnología lo que puede llevar a confusión (es decir, se llama también Java Server Faces). También existen otras implementaciones como Smile, Shale, ICEFaces (con Ajax), ADF Faces (de Oracle), etc…

Actualmente, JSF comparada con otras tecnologías MVC (Spring MVC, Struts, WebWork, Tapestry,…) está mas orientada a componetes y eventos  (component-oriented / event-driven aproach), además de tener un mayor nivel de abstracción. JSF es la tecnología mas reciente, pero la mas avanzada y con un futuro mas prometedor. En contrapartida,  debido al alto nivel de abstracción que pretende alcanzar, puede resultar menos flexible y es frecuente escuchar el argumento de que si tu prioridad es el rendimiento no deberías usar JSF como MVC framework.

Be Sociable, Share!