Ver Mensaje Individual
  #11 (permalink)  
Antiguo 12/04/2011, 16:52
chabier
 
Fecha de Ingreso: abril-2011
Ubicación: Zaragoza
Mensajes: 6
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Problema con Struts 2, realiza varias llamadas a un action

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?