Yes of course, JSF 2.0 has page-templating feature. You define a template that defines a generic layout to all the view pages.
Facelets tags to create basic page:
- ui:insert – defines content that is going to replace by the file that load the template;
- ui:define – defines content that is inserted into tag ui:insert;
- ui:include – includes content from another page;
- ui:composition – the specified template is loaded, if used with template attribute, and the children of this tag defines the template layout. In other case, it’s a group of elements, that can be inserted somewhere.
For example:
<ui:composition
     xmlns="http://www.w3.org/1999/xhtml"
     xmlns:ui="http://java.sun.com/jsf/facelets"
    template="/templates/myLayout.xhtml">
   <ui:define name="menu">
      <ui:include src="/mypath/menu.xhtml"/>
   </ui:define>
   <ui:define name="content"> 
     <ui:include src="/mypath/content.xhtml"/>           
   </ui:define>
</ui:composition>
or 
<ui:insert name="content">
   <ui:include src="/mypath/mycontent.xhtml"/>
</ui:insert>