JavaServer Faces
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™.
- 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.xml necesario 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.