WAS v8.5 > Develop applications > Develop web applications > Develop web applications > Develop JSF filesJavaServer Faces
JavaServer Faces (JSF) is a user interface framework or API that eases the development of Java web applications.
WebSphere Application Server supports JavaServer Faces 2.0 at a runtime level. The JSF runtime also:
- Makes it easy to construct a user interface from a set of reusable user interface components
- Simplifies migration of application data to and from the user interface
- Helps manage user interface state across server requests
- Provides a simple model for wiring client-generated events to server-side application code
- Supports custom user interface components to be easily build and reused
Both the Sun Reference Implementation and Apache MyFaces implementation are shipped with the product.
The Apache MyFaces JSF Implementation provides the foundation of the code used for the JSF support in WAS. The version of the JSF runtime provided by the Application Server resides in the normal runtime library location and is available to all web applications that use JSF APIs. Loading the JSF servlet works in the same manner as if the run time was packaged with the web application. The bundled version includes enhancements for better integration with the built-in annotation scanning and other runtime components of WAS.
The specification-related classes (javax.faces.*) for JSF and the IBM modified version of the Apache MyFaces JSF Implementation and the JSF Sun reference implementation are packaged in the Application Server run time.
Typically, web applications that use this API/Framework embed the JSF API and implementation JAR files within their WAR file. This practice is not required when these web applications are deployed and run within WAS. Only the removal of these JAR files along with any JSTL JAR files from the WAR file is required. However, because JavaServer Faces 2.0 is a part of the Java EE platform, a web application does not need to bundle a JavaServer Faces implementation when it runs on a web container that is Java EE technology compliant. If a JavaServer Faces implementation is bundled with a web application, it is ignored as the JavaServer Faces implementation provided by the platform always takes precedence.
The JSF run time for WAS does not support the use of a single class loader for the entire application. This support is not available when the application contains multiple web modules and one of those modules is a JSF module. A single class loader for the entire application is not supported because the FacesConfig initialization requires a single class loader for each JSF module to perform the initialization. Therefore, use multiple class loaders when the application contains multiple web modules and at least one JSF module.
For using different implementations of JSF, the WAS JSF engine determines if the SUN RI or Apache MyFaces is used from the application server run time. After the JSF engine determines the implementation used, the correct listener class is registered with the web container. We do not need to add the com.sun.faces.ConfigureListener or the org.apache.myfaces.StartupConfigureListener to web.xml.
To use a third party JSF implementation not shipped with the product, leave the configuration set to MyFaces, add the third party listener to web.xml required and add the third party implementation JAR files to the web module as an isolated shared library. Using an isolated shared library, the web application version of the JSF or JSTL classes load before the Application Server.
Related concepts:
JWL
Related
Configure Portlet Bridge for JavaServer Faces
Configure JavaServer Faces implementation
Configure JavaServer Faces implementation
Manage JavaServer Faces implementations using wsadmin.sh
Tasks: Develop and deploy web applications
Develop web applications
Configure JSF engine parameters
Reference:
JSF engine configuration parameters