Gracias hualro!!!
No conocía Sitemesh. Lo he estado mirando y leyendo información de él, y parece muy interesante.
Pero por lo que veo, es parecido a tiles no?
Yo tengo un archivo Base.jsp que tiene el <head> que he puesto antes, y a continuación tiene:
Código PHP:
<body>
<div id="contenedorDatos">
<div id="cabecera">
<tiles:insertAttribute name="header" />
</div>
<tiles:insertAttribute name="emergente" />
<div id="contenidoSinMenu">
<tiles:insertAttribute name="body" />
</div>
<div id="pie">
<tiles:insertAttribute name="footer" />
</div>
</div>
</body>
Se podría decir, que este es mi layout.
Así pues, con Sitemesht haces un jsp de contenido y lo que está dentro del la etiqueta <body>, automáticamente se pone dentro del layout donde lo hayas definido que va el <decorator:body/>
Desde struts llamas al jsp que quieres, y Sitemesh carga todo el decorado (a menos que hayas excluido la pagina)
Con tiles, la diferencia sería que tienes que definir un archivo intermedio, que une el jsp con el <tiles:insertAttribute name="body" /> diciendole por ejemplo:
Código PHP:
<definition name="pagina.tiles" extends="base">
<put-attribute name="title" value="Pagina" />
<put-attribute name="body" value="/mipagina.jsp" />
<put-attribute name="cssPropios1" value="css/estilosDePagina.css"/>
<put-attribute name="jsPropios2" value="js/jsDePagina.js"/>
</definition>
Aquí estoy cogiendo todo lo definido en base, y sobreescribiendo lo que necesito.
Y desde struts llamas al tiles no al jsp.
¿Con Sitemesh puedes tener un <head> en cada pagina? ¿Supongo que también pillará el head de la pagina Base (layout) no?
A las alturas que estoy del proyecto, y sin conocer a fondo Sitemesh no puedo cambiar ahora, pero en proximos proyectos, intentaré investigarlo mejos y más a fondo para poder usarlo.
¿Crees que es mejor que tiles?