Bom, tudo que tu falou eu ja tentei.
A estrutura do meu proejto está asim
as estrutura de das minhas paginas começa em /jsp
e dentro de /jsp tem as pastas que separam os modulos alem da pasta images
ha também umas pasta template onde se encontra o jsp que centraliza o layout
dentro dele eu chamo o header.html que fica em um outro diretório dentro jsp chamado common mais ou menos assim.
/jsp
/jsp/common
/jsp/images
/jsp/modulo1
/jsp/modulo2
/jsp/template
Vou colocar o codigo da pagina header.jsp e o da pagina que centraliza o layout
layout.jsp
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t" %>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-tiles" prefix="tiles" %>
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
<tiles:importAttribute scope="request"/>
<%--
ATRIBUTOS DO LAYOUT:
titulo(String)
javascript(Tile)
menu_principal(Tile)
menu(Tile)
main(Tile)
--%>
<f:loadBundle basename="#{webConstant.MESSAGE_BUNDLE_BASE}" var="msg0"/>
<t:document>
<t:documentHead>
<f:verbatim><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/></f:verbatim>
<t:htmlTag value="title">
<h:outputText value="#{titulo}"/>
</t:htmlTag>
<t:stylesheet path="/css/estilos.css"/>
<f:verbatim>
<tiles:insert attribute="javascript" flush="false" ignore="true"/>
</f:verbatim>
</t:documentHead>
<t:documentBody>
//cabeçario
<tiles:insert page="../common/header.html" flush="false" ignore="true" />
<tiles:insert attribute="menu" flush="false" ignore="true"/>
<c:if test="${menu != null}">
<t:htmlTag value="br"/>
<t:htmlTag value="br"/>
</c:if>
<h:messages globalOnly="true" showSummary="true" showDetail="true" infoClass="msg_info" errorClass="msg_erro"/>
//paginas que carregarão no centro
<tiles:insert attribute="main" flush="false"/>
//rodapé
<tiles:insert page="../common/footer.html" flush="false" ignore="true" />
</t:documentBody>
</t:document>
header.html
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="223"><img src="../images/Topo_1.gif" width="541" height="70"></td>
<td width="100%" background="../images/Topo_2.gif"><img src="../images/spacer.gif"></td>
<td width="496"><img src="../images/Topo_3.gif" width="186" height="70"></td>
</tr>
</table>
a pagina do header.html é inserido onde está comentado //cabeçario na pagina template