The Java EE 7 Tutorial
7.1 What Is a JavaServer Faces Application?
The functionality provided by a JavaServer Faces application is similar to that of any other Java web application. A typical JavaServer Faces application includes the following parts.
-
A set of web pages in which components are laid out.
-
A set of tags to add components to the web page.
-
A set of managed beans, which are lightweight, container-managed objects (POJOs). In a JavaServer Faces application, managed beans serve as backing beans, which define properties and functions for UI components on a page.
-
A web deployment descriptor (
web.xml
file). -
Optionally, one or more application configuration resource files, such as a
faces-config.xml
file, which can be used to define page navigation rules and configure beans and other custom objects, such as custom components. -
Optionally, a set of custom objects, which can include custom components, validators, converters, or listeners, created by the application developer.
-
Optionally, a set of custom tags for representing custom objects on the page.
Figure 7-1 shows the interaction between client and server in a typical JavaServer Faces application. In response to a client request, a web page is rendered by the web container that implements JavaServer Faces technology.
Figure 7-1 Responding to a Client Request for a JavaServer Faces Page
Description of "Figure 7-1 Responding to a Client Request for a JavaServer Faces Page"
The web page, myfacelet.xhtml
, is built using JavaServer Faces component tags. Component tags are used to add components to the view
(represented by myView
in the diagram), which is the server-side representation of the page. In addition to components, the web page can also reference objects, such as the following:
-
Any event listeners, validators, and converters that are registered on the components
-
The JavaBeans components that capture the data and process the application-specific functionality of the components
On request from the client, the view is rendered as a response. Rendering is the process whereby, based on the server-side view, the web container generates output, such as HTML or XHTML, that can be read by the client, such as a browser.