JSF

¿Qué es JavaServer Faces?

JavaServer Faces (JSF) es un framework para aplicaciones Java basadas en web que simplifica el desarrollo de interfaces de usuario en aplicaciones Java EE. JSF usa JavaServer Pages (JSP) como la tecnología que permite hacer el despliegue de las páginas, pero también se puede acomodar a otras tecnologías como XUL.

JSF tiene como característas principales:

-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, mapipulación y
    visualización de los valores nostrados 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.
  • Y lo que es más importante: 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.
API JSF

La implementación de Apache MyFaces se incluye con WebSphere Application Server y proporciona la base del código utilizado para el JSF.
La versión del tiempo de ejecución de JSF que se incluye con el producto reside en la ubicación de la biblioteca de tiempo de ejecución normal y está disponible para todas las aplicaciones web que utilizan la API de JSF. La carga del servlet JSF funciona como si tiempo de ejecución se empaquetara con la aplicación web. La versión empaquetada incluye mejoras para una mejor integración con la exploración de anotaciones incorporada y otros componentes de ejecución de WebSphere Application Server.
Las clases relacionadas con la especificación javax.faces.* para JSF y la versión modificada de IBM® de la implementación JSF de Apache MyFaces se empaquetan en el tiempo de ejecución.
Generalmente, las aplicaciones Web que utilizan esta API/infraestructura incorporan la API de JSF y los archivos JAR (Java archive) de implementación en el archivo WAR (Web archive). Esto no es necesario cuando estas aplicaciones web se despliegan y ejecutan en WebSphere Application Server. Sólo es necesaria la eliminación de estos JAR junto con los archivos JAR JSTL del archivo WAR. Sin embargo, dado que JavaServer Faces 2.2 forma parte de la plataforma Java Platform, Enterprise Edition (Java EE), una aplicación web no empaqueta una implementación de JavaServer Faces cuando se ejecuta en un contenedor web compatible con la tecnología Java EE. Si se empaqueta una implementación JavaServer Faces con una aplicación web, se pasará por alto, ya que siempre tiene preferencia la implementación JavaServer Faces proporcionada por la plataforma.
¿Por qué JSF y no JSP y Servlets?

Como se mencionó actualmente y gracias al avance de la especificación JEE existen muchas tecnologías que podemos usar, sin embargo lo ideal es empezar por las bases de la especificación y esto obligatoriamente nos hace pasar por los jsp, servlets y jsf, sin embargo voy a centrarme solo en JSF ya que estos brindan mayores facilidades en comparación con los anteriores, adicionalmente se pueden trabajar como tecnologías independientes lo que nos facilitaría enormemente el proceso.


Con JSF para la construcción de las páginas web pueden seguir usándose archivos JSP pero podemos disponer también de archivos xhtml para este fin, adicionalmente con JSF podemos independizar la lógica de negocio de la capa de presentación gracias al patrón MVC pues como es sabido tanto los servlets como los jsp permiten la mezcla de código html en servlet o java en los jsp lo que si bien puede ser válido, a medida que nuestra aplicación crece se puede empezar a tornar poco escalable pues no es una buena práctica mezclar código de presentación con código de lógica, por esta razón JSF es una buena alternativa al brindar solución a esta problemática.


Es importante mencionar que los JSP y los Servlet no son tecnológicas obsoletas, al contrario con las nuevas versiones y especificaciones aún se tienen en cuenta mejoras para estos, sin embargo como se mencionó JSF al ser un framework de la capa de presentación facilita enormemente el proceso de construcción de sistemas, lo que a nivel de optimización y rendimiento brinda mayores ventajas con respecto a los anteriores.


Basado en lo anterior no podemos desconocer que JSF también es una tecnología que puede ser compleja en ciertos aspectos y su uso puro puede no ser la mejor opción debido a todo lo que tendríamos que tener en cuenta y el tiempo que debemos invertir por lo que es bueno que se haga uso de otros frameworks que nos ayuden a construir nuestros sistemas, así mismo actualmente hay otras tendencias como alternativas para la capa de presentación basadas en JavaScript, alternativas como angular por ejemplo que nos brinda muchas ventajas en el front independizando el backend que lo podemos trabajar en java directamente, sin embargo a pesar de las diferentes tendencias JSF y el estándar JEE en general sigue siendo muy fuerte y en la actualidad cada vez más la industria sigue requiriendo desarrolladores que conozcan este lenguaje y sus especificaciones, sea para nuevos desarrollos o para brindar soporte a sistemas ya existentes.


Adicional a las razones anteriores, la secuencia de tutoriales serán enfocados a los básico e introductorio de la especificación JEE por lo tanto JSF se presenta como la alternativa ideal como primer acercamiento, ya que facilitará nuestros desarrollos y reducirá procesos que antes podrían desencantar a las personas en el desarrollo java.


No hay comentarios.:

Publicar un comentario

JavaScript

JavaScript