The JSF Request Life Cycle

This is the life cycle of a JSF request initiated by the browser. Everything in the above diagram is taking place on the server.

JSF requests are initiated when the user clicks on a command button (<h:commandButton> tag) or occasionally a command link (<h:commandLink> tag). These widgets are contained in a <h:form> tag. Data that the user has entered into any input widgets within the tag is included in the request.

The JSF Request Life Cycle

Restore View

Apply Request Values

The values are stored in temporary locations, not in application beans. Transfer to application beans happens later.

Process Validations

Note that if there are conversion or validation errors then the next step is rendering the response. Bypassing invoking the application implies that the same web page is presented again.

Validatation errors can occur for two reasons:

Update Model

This is where bean setters are invoked.

Invoke Application

The action attribute can be just a string that names (.xhtml suffix omitted) the next web page to be presented to the user. It can also be an action method that dynamically returns the string that names the next page.

Render Response

This is where bean getters are invoked.