Por admin | Para la categoría de struts | noticia del 25-10-2009
Tutorial de struts
Los tiles son plantillas que utiliza struts para la organización de la estructura visual de las vistas de un proyecto web. En realidad struts no hace más que integrar en su framework algo que ya existía en j2ee, que eran las plantillas con jsp.
Como ya se hizo en un ejemplo de j2ee utilizabamos la directiva <%@include file="xxxx" %> para incluir contenido estático y para la inclusión dinámica utizabamos <%@include page="xxx" %>. esto último como recordatorio j2ee.
Una vez creada la plantilla la podemos reutilizar para cualquier página que tenga dicho formato y así no tener que escribir todo código cada vez que se hace una nueva página.

Al igual que en los anteriores post, añadimos un nuevo ejercicio a la lista, en este caso para struts-tiles para ello en el fichero ejercicios.jsp, añadimos el siguiente enlace para la acción plantillas.
1 2 3 4 | <div class="enlace"> <html:link action="/plantillas"> 5) struts tiles </html:link> </div> |
Recordar estamos con la versión 1.3.10 y esta versión tenemos un fichero de configuración llamado struts-config.xml,
Vemos como el link de la página de los ejercicios va la acción plantillas, en la sección actionMapping del fichero de configuración struts-config.xml
1 2 3 | <action path="/plantillas" forward="plantillatiles"/> |
Dentro del proyecto creamos una carpeta tiles, donde creamos las páginas jsp que van a intervenir en el proyecto

En estas páginas jsp hay una que es especialmente importante código de pantilla.jsp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@taglib uri="http://struts.apache.org/tags-html" prefix="html" %> <%@taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html:html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title><tiles:getAsString name="titulo"/></title> <html:base/> <link type="text/css" rel="stylesheet" href="../css/estiloplantilla.css"/> </head> <body> <div id="contenedor"> <div id="cabecera"> <tiles:insert attribute="cabecera"/> </div> <div id=" contendido "> <div id="menu"> <tiles:get name="menu"/> </div> <div id=" contenido "> <tiles:get name="cuerpo"/> </div> </div> <div id="pie"> <tiles:get name="pie"/> </div> </div> </body> </html:html> |
Imagen de la plantilla 
Los diferentes tiles, fragmentos de páginas jsp como se utilizan etiquetas de struts es necesario integrar la libreria html en todas ellas, recordar que estan ubicadas tal como la imagen
Código de cabecera.jsp
1 2 3 4 | <%@taglib uri="http://struts.apache.org/tags-html" prefix="html" %> <div id="imagencabecera"> <html:img srcKey="imagen.cabecera" altKey="imagen.cabecera.alt"/> </div> |
Código de menu.jsp
1 2 3 4 5 6 | <%@taglib uri="http://struts.apache.org/tags-html" prefix="html" %> <ul id="menu_lateral"> <li><html:link action="/objetos"> Objetos </html:link> </li> <li><html:link action="/personajes" > Personajes </html:link> </li> </ul> <html:img srcKey="imagen.libros" altKey="imagen.libros.alt"/> |
Código de cuerpo.jsp
1 2 3 4 5 6 | <%@taglib uri="http://struts.apache.org/tags-html" prefix="html" %> <p> Ejemplo de desarrollo con struts-tiles, tenemos una plantilla base y diferentes definiciones de página en un fichero xml llamado tiles-def.xml </p> <html:img srcKey="imagen.lapices" altKey="imagen.lapices.alt"/> |
Código de pie.jsp
1 2 3 4 5 6 | <%@taglib uri="http://struts.apache.org/tags-html" prefix="html" %> <p id="pizquierda"> <html:link action="/Welcome">Ejercicios </html:link>|<html:link action="/plantillas"> Plantilla </html:link>| <html:link action="/objetos"> Objetos</html:link> |<html:link action="/personajes"> Personajes </html:link> </p> <p id="pderecha"> @CopyRight railsymas.com </p> |
Creamos dos nuevas páginas jsp para las vistas personajes y objetos
Código de personajes.jsp
1 2 3 4 5 6 | <%@taglib uri="http://struts.apache.org/tags-html" prefix="html" %> <div id="imagenes"> <p> Personajes </p> <html:img srcKey="imagen.personaje1" altKey="imagen.personaje1.alt"/> <html:img srcKey="imagen.personaje2" altKey="imagen.personaje2.alt"/> </div> |
Código de la página objetos.jsp
1 2 3 4 5 6 | <%@taglib uri="http://struts.apache.org/tags-html" prefix="html" %> <div id="imagenes"> <p> Objetos </p> <html:img srcKey="imagen.objeto1" altKey="imagen.objeto1.alt"/> <html:img srcKey="imagen.objeto2" altKey="imagen.objeto2.alt"/> </div> |
fichero de propiedades
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | #tiles
imagen.cabecera = ../imagenes/cabecera2.png
imagen.cabecera.alt = imagen cabecera
imagen.lapices = ../imagenes/lapices.png
imagen.lapices.alt = lápices
imagen.libros = ../imagenes/libros.png
imagen.libros.alt = libros
imagen.objeto1 = ../imagenes/candado.png
imagen.objeto1.alt = candado.png
imagen.objeto2 = ../imagenes/impresora.png
imagen.objeto2.alt = impresora.png
imagen.personaje1 = ../imagenes/personachat.png
imagen.personaje1.alt = personachat.png
imagen.personaje2 = ../imagenes/personajes.png
imagen.personaje2.atl = personajes.png |
fichero de configuración de las acciones struts-config.xm en la sección action-mapping
1 2 3 4 5 6 7 8 9 10 11 12 13 | <action path="/plantillas" forward="plantillatiles"/> <action path="/objetos" forward="plantillaobjetos" /> <action path="/personajes" forward="plantillapersonajes" /> |
Tenemos dos posibilidades establecer las definiciones mediante jsp o bien mediante un fichero de configuración xml denominado tiles-def.xml dentro de la carpetan web-inf del proyecto struts
En el siguiente post para la segunda parte de este ejercicio se verá el fichero de configuración antes citado y la explicación más detallada así como las diferentes capturas de las vistas objetos y personajes.
Enlace a la segunda parte de Struts tiles

muy logrado el tutorial gracias