What is JSF?
JavaServer Faces (JSF) is a Java-based Web application framework that simplifies the development of user interfaces for Java EE applications. Unlike other traditional request-driven MVC web frameworks, JSF uses a component-based approach. The state of UI components is saved when the client requests a new page and is then restored when the request is returned. Out of the box, JSF uses JavaServer Pages for its display technology, but JSF can also accommodate other display technologies (such as XUL). JSF includes:
- A set of APIs for representing user interface (UI) components and managing their state, handling events and input validation, converting values, defining page navigation, and supporting internationalization and accessibility
- A default set of UI components
- Two JavaServer Pages (JSP) custom tag libraries for expressing a JavaServer Faces interface within a JSP page.
- A server-side event model
- State management
- Managed Beans (JavaBeans created with dependency injection)
- Unified Expression Language for both JSP 2.0 and JSF 1.2
For more information refer to http://java.sun.com/javaee/javaserverfaces/
Application or Analysis Unit Setup
Environment Profile
In order to analyze JSF 1.2 based applications, you must select the following Environment Profiles in your application:
- JSF 1.2 (selected by default)
Check for each environment that your application uses the same version, otherwise duplicate the Environment Profile to preserve parameterization, change its name and select the right version of the archive.
XML files
In the JEE Application or Analysis Unit configuration, you need to select an XML directory that contains JSF Configuration files. JSF XML file usually named faces-config.xml and check that it refers to the JSF DTD:
<!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN" "http://java.sun.com/dtd/web-facesconfig_1_1.dtd">
JSF restitution sample
- The JSP pages invoke Java layers through forms (i.e. <h:commandButton id="logout" value="Logout" action="#{usermanager.logout}"/> invokes the method logout from welcomeJSF.jsp)
- JSF Input Fields are created for each field in a JSF form (i.e. <h:form id="create">...)
- JSF Outcomes are created from the outcome defined in faces-config.xml
- Navigation from the Outcomes to JSP files is deduced from the faces-config.xml navigation rules