1) configure the JspTilesViewHandler in your faces-config: <application> Â Â Â <view-handler>net.sourceforge.myfaces.application.jsp.JspTilesViewHandlerImpl</view-handler> </application>
2) add the following lines to your web.xml <context-param> Â Â Â <param-name>tiles-definitions</param-name> Â Â Â <param-value>/WEB-INF/tiles.xml</param-value> </context-param>
3) define your layout in a tiles-definition file (sample from the tiles-webapp).
When rendering the view, the JspTilesViewHandlerImpl will take the given viewId and compute a tileId by
substituting any extension by ".tiles"
appending ".tiles" if path-mapping is used
Next the ViewHanlder looks up in the tile-definitions for the corresponding definition. (eg. for viewId = /page1.jsp the lookup would be /page1.tiles)
By the way, the JspTilesViewHandlerImpl is part of the myfaces-components. So someone could use it with Sun's RI too. ================================================================== <!DOCTYPE tiles-definitions PUBLIC  "-//Apache Software Foundation//DTD Tiles Configuration//EN"  "http://jakarta.apache.org/struts/dtds/tiles-config.dtd">
<tiles-definitions>    <definition name="layout.example" path="/template/template.jsp" >        <put name="header" value="/common/header.jsp" />        <put name="menu" value="/common/navigation.jsp" />    </definition>
   <definition name="/page1.tiles" extends="layout.example" >        <put name="body" value="/page1.jsp" />    </definition>
   <definition name="/page2.tiles" extends="layout.example" >        <put name="body" value="/page2.jsp" />    </definition>