JavaServer Faces
JavaServer Faces (JSF) es una infraestructura de interfaz de usuario o una interfaz de programación de aplicaciones (API) que facilita el desarrollo de aplicaciones web Java™ .
- Facilita la construcción de una interfaz de usuario a partir de un conjunto de componentes de interfaz de usuario reutilizables
- Simplifica la migración de datos de aplicación hacia la interfaz de usuario o desde ésta.
- Ayuda a gestionar el estado de la interfaz de usuario durante las peticiones de servidor
- Proporciona un modelo sencillo para enviar sucesos generados por el cliente al código de aplicación del lado del servidor.
- Permite crear y reutilizar con facilidad los componentes de una interfaz de usuario personalizada
Con el producto se envían la implementación de Sun Reference y la implementación de Apache MyFaces.
La implementación JSF de Apache MyFaces proporciona la base del código utilizado para el soporte JSF en WebSphere Application Server. La versión del tiempo de ejecución de JSF proporcionado por el servidor de aplicaciones 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 de la misma forma que si el 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 tiempo 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 y la implementación de referencia de JSF Sun se empaquetan en el tiempo de ejecución del servidor de aplicaciones.
Normalmente, las aplicaciones web que utilizan esta API/infraestructura incorporan la API JSF y los archivos JAR (Java Archive) de implementación en su archivo WAR (Web Application Archive). Esta práctica no es necesaria 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, puesto que JavaServer Faces 2.0 forma parte de la plataforma Java Platform, Enterprise Edition (Java EE), no es necesario que una aplicación web empaquete una implementación JavaServer Faces cuando se ejecuta en un contenedor web compatible con la tecnología Java EE . Si una implementación de JavaServer Faces se empaqueta con una aplicación web, se ignora como la implementación de JavaServer Faces proporcionada por la plataforma siempre tiene prioridad, a menos que configure la aplicación y el servidor tal como se describe en la sección siguiente.
El tiempo de ejecución de JSF para WebSphere Application Server no da soporte al uso de un único cargador de clases para toda la aplicació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. No se soporta un cargador de clases individual para la aplicación entera porque la inicialización FacesConfig requiere una clase de cargador individual para cada módulo JSF para realizar la inicialización. 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 SUN RI o Apache MyFaces desde el 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 u org.apache.myfaces.StartupConfigureListener al archivo web.xml.
Si desea utilizar una implementación JSF de otro proveedor que no se entrega con el producto, deje la configuración establecida en MyFaces, añada el escucha de otro proveedor al archivo web.xml que sea necesaria y añada los archivos JAR de la implementación de otro proveedor al módulo Web en forma de 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.