Apache Tiles
Apache Tiles es un framework de template para simplificar el desarrollo de interfaces de usuario. Tiles permite definir fragmentos y crear páginas que se ensamblan en tiempo de ejecución con estos fragmentos.
Contenido
Configuración rápida de Apache Tiles 3.0
Configurar Apache Tiles 3.0 para un sitio web consiste de estos pasos básicos:
- Agregar las librerias de Tiles al proyecto.
- Crear el archivo de configuración tiles.xml' con las definiciones de las páginas.
- Configurar el listener de Tiles en el archivo web.xml para que levante la configuración del punto 2.
- Configurar un Servlet que atienda peticiones y cree las páginas a partir de las definiciones del punto 2.
1. Configurar las librerias de Tiles
Usando Maven, incluir 3 dependencias:
<dependency> <groupId>org.apache.tiles</groupId> <artifactId>tiles-servlet</artifactId> <version>3.0.0</version> </dependency> <dependency> <groupId>org.apache.tiles</groupId> <artifactId>tiles-jsp</artifactId> <version>3.0.0</version> </dependency> <dependency> <groupId>org.apache.tiles</groupId> <artifactId>tiles-extras</artifactId> <version>3.0.0</version> </dependency>
2. Configurar tiles.xml
Crear un archivo WEB-INF/tiles.xml en la aplicación web. El siguiente archivo tiene una definición de ejemplo agregada.
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE tiles-definitions PUBLIC
"-//Apache Software Foundation//DTD Tiles Configuration 2.1//EN" "http://tiles.apache.org/dtds/tiles-config_2_1.dtd">
<tiles-definitions>
<definition name="prueba/holamundo" template="/WEB-INF/layouts/default.jsp"> <put-attribute name="titulo" value="Un hola mundo con Tiles" /> <put-attribute name="menu" value="/WEB-INF/jsp/menu.jsp" /> <put-attribute name="body" value="/WEB-INF/jsp/holamundo.jsp" /> </definition>
</tiles-definitions>
La definición del template
El ejemplo anterior hace referencia a un template, que contiene la estructura de la página. El template tiene lugares (placeholders) donde se ubican los fragmentos. Un template de ejemplo podría ser:
<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles" %>
<html>
<head> <title><tiles:getAsString name="title"/></title> </head> <body>
</body>
</html>
3. Configurar el listener de Tiles
En el archivo web.xml configurar el listener de Tiles 3:
<listener> <listener-class>org.apache.tiles.extras.complete.CompleteAutoloadTilesListener</listener-class> </listener>
4. Configurar un servlet que atienda peticiones
Tiles brinda integración con varios frameworks de presentación (como Struts, Spring, Shale, Velocity y otros). También provee de un Servlet muy sencillo que atiende las peticiones y renderiza directo la definición asociada.
La configuración de este Servlet se hace en el archivo web.xml:
<servlet> <servlet-name>Tiles Dispatcher Servlet</servlet-name> <servlet-class>org.apache.tiles.web.util.TilesDispatchServlet</servlet-class> <load-on-startup>2</load-on-startup> </servlet>
<servlet-mapping> <servlet-name>Tiles Dispatcher Servlet</servlet-name> <url-pattern>*.tiles</url-pattern> </servlet-mapping>
Con esta configuración puede desplegarse la aplicación. La petición "prueba/holamundo.tiles" será atendida por este servlet, y aplicada la definición en tiles.xml.