JSF





Qué es JavaServer Faces

JavaServer Faces (JSF) es una tecnología y framework para aplicaciones Java basadas en web que simplifica el desarrollo de interfaces de usuario en aplicaciones Java EEJSF 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 (acrónimo de XML-based User-interface Language, lenguaje basado en XML para la interfaz de usuario)

JSF incluye:
  • 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.




Características de JSF


  • 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 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.
  • 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.

¿Qué es la API JSF?

JSF (JavaServer Faces) es una infraestructura de interfaz de usuario o interfaz de programación de aplicaciones (API), que facilita el desarrollo de aplicaciones web Java™.
WebSphere Application Server da soporte a JavaServer Faces 2.2 a nivel de tiempo de ejecución. Utilice el tiempo de ejecución de JSF para las funciones siguientes:
  • Construir fácilmente una interfaz de usuario a partir de un conjunto de componentes de interfaz de usuario reutilizables.
  • Simplificar la migración de datos de aplicación a o desde la interfaz de usuario.
  • Ayudar a gestionar el estado de la interfaz de usuario durante las solicitudes de servidor
  • Proporcionar un modelo sencillo para enviar sucesos generados por el cliente al código de aplicación del lado del servidor.
  • Dar soporte a componentes de la interfaz de usuario personalizados para su compilación y reutilización.
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.
El tiempo de ejecución JSF para WebSphere Application Server no tiene soporte para el uso de un único cargador de clases para toda la aplicación porque la inicialización de FacesConfig requiere un único cargador de clases para cada módulo JSF durante la inicialización. Este soporte no está disponible cuando la aplicación contiene varios módulos web y uno de esos módulos es un módulo JSF. Por consiguiente, debe utilizar varios cargadores de clases cuando la aplicación contiene varios módulos web y al menos un módulo JSF.
Para utilizar diferentes implementaciones de JSF, el motor JSF de WebSphere Application Server determina si se utiliza la RI de SUN o Apache MyFaces del tiempo de ejecución del servidor de aplicaciones. Una vez que el motor JSF determina la implementación que debe utilizarse, la clase de escucha adecuada se registrará con el contenedor web. No es necesario añadir com.sun.faces.ConfigureListener o org.apache.myfaces.StartupConfigureListener al archivo web.xml.
Si utiliza una implementación JSF de otro proveedor que no se incluye con el producto, deje la configuración establecida en MyFaces, añada el escucha de otro proveedor al archivo web.xmlnecesario y añada los archivos JAR de la implementación del otro proveedor al módulo web como una biblioteca compartida aislada. Al utilizar una biblioteca compartida aislada, la versión de la aplicación web de las clases JSF o JSTL se carga antes que el servidor de aplicaciones.

Diferencias entre JSP, JSF y SPRING
JSP:
  • Era el framework para la generación de páginas web anterior a que se definiera JSF.
  • Se basa en generar un fichero .jsp que es "traducido" a una clase Servlet que a su vez es compilada y ejecutada.
  • Hay dos versiones: con scriptlets (<% %>) que se considera obsoleta, o con la Java Standard Template Library (JSTL). La última implementa el MVC, mientras que con la primera normalmente todo el código va en el propio JSP.
JSF:
  • Es un framework para la generación de páginas web dentro de una aplicación web. Sigue la filosofía MVC.
  • Tiene dos "modos": usando JSP o Facelets. Inicialmente se usaban JSPs, pero a partir de la versión 1.2 por defecto se usan Facelets (componentes XML). Normalmente se confunde "JSF" por "Facelets" (si buscas "componentes JSF" encontrarás librerías de Facelets).
  • Estandariza cuestiones como navegación entre páginas y la internacionalización de recursos que en JSP simplemente no estaban definidas.
Spring:
  • Es un stack alternativo a Java EE. Como tal, proporciona una serie de servicios similares a los del stack (por ejemplo autenticación y seguridad, ORM/acceso a datasources, etc.).
  • No reemplaza completamente el stack; por ejemplo es muy común integrar una capa web JSP o JSF con una base Spring, o usar componentes del stack (como la API de Validation) dentro de Spring o viceversa (usar Hibernate en vez de JPA dentro de una aplicación Java EE).


JSF
  • Es un sistema que facilita el desarrollo de la interfaz de usuario en páginas web.
  • Dispone de varias características de base, por ejemplo dos librerías de etiquetas .
  • Es un framework.
  • Soporta conversión a validatorajax etc...
  • Puedes integrar JSF con ricas librerías para diferentes interfaces de usuario.
JSP
  • Es un lenguaje basado totalmente en Java para hacer páginas web dinámicas.
  • Tiene que ser compilado en Java bytecode.
  • No es un framework.







Comentarios

Entradas populares