JavaServer Faces (JSF) technology [81,74], is used to separate out the presentation from tool logic. JSF is a framework for building user interfaces for web applications and follows the Model-View-Controller (MVC) design pattern. JavaServer Faces technology includes:
Designed to be flexible, JavaServer Faces technology leverages existing, standard UI and Web-tier concepts without limiting developers to a particular mark-up language, protocol, or client device. The UI component classes included with Java Server Faces technology encapsulate the component functionality, not the client-specific presentation, thus enabling JavaServer Faces UI components to be rendered to various client devices. By combining the UI component functionality with custom renderers, which define rendering attributes for a specific UI component, developers can construct custom tags to a particular client device. As a convenience, JavaServer Faces technology provides a custom renderer and a JSP custom tag library for rendering to an HTML client, allowing developers of Java 2 Platform, Enterprise Edition (J2EE) applications to use JavaServer Faces technology in their applications.
Ease-of-use being the primary goal, the JavaServer Faces architecture clearly defines a separation between application logic and presentation while making it easy to connect the presentation layer to the application code. This design enables each member of a Web application development team to focus on his or her piece of the development process, and it also provides a simple programming model to link the pieces together. For example, Web page developers with no programming expertise can use JavaServer Faces UI component tags to link to application code from within a Web page without writing any scripts. Unfortunately, JSF uses a set of custom XML based tags for rendering the interface, so web developers who are used to using WYSIWYG tools for HTML development are going to have to change their working pattern until appropriate tooling appears. Another problem JSF may face with logic programmers will be a sense of ambivalence: why use JSF when Struts/Tapestry/WebWork work so well? Sakai tools can be written using web frameworks other than JSF, although it will be more tricky to integrate with the Spring-based Sakai component repository. JSF and Spring are core parts of the TPP for this reason.
Developed through the Java Community Process under JSR-127, JavaServer Faces technology establishes the standard for building server-side user interfaces. With the contributions of the expert group, the JavaServer Faces APIs are being designed so that they can be leveraged by tools that will make web application development even easier. Several respected tools vendors are contributing members to the JSR-127 expert group and are committed to supporting the JavaServer Faces technology in their tools, thus promoting the adoption of the JavaServer Faces technology standard.
The expert group is actively developing the specification for JavaServer Faces. To check its current status, see the JSR-127.