The view build time is not a phase. The view build time is that moment when the physical UIViewRoot
instance and all of its children is built based on the view declaration, which is usally defined in XHTML or JSP files.
The view build time moment is not restricted to a specific JSF lifecycle phase. It can technically happen in any phase. By default, it's indeed usually executed during the restore view phase, but it can also happen during the render response phase, specifically when the request is a GET request, or when navigation has taken place during a POST request. Developers can also programmatically build the view via ViewDeclarationLanguage#buildView()
, or implicitly force the JSF implementation to do that via FacesContext#setViewRoot()
, when navigation isn't sufficient for the specific task.
The restore view phase just restores the JSF state into the view. I.e. it sets the component attributes with values as they were during the previous request on the same view. This way JSF knows exactly how the view looked like at the moment the form was being presented to the enduser and can among others do some safeguards against tampered requests.
See also: