Apache Tiles

De Dos Ideas.
Revisión del 13:10 8 jun 2012 de Admin (discusión | contribuciones) (La definición del template)
Saltar a: navegación, buscar

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.

Configuración rápida de Apache Tiles 3.0

Configurar Apache Tiles 3.0 para un sitio web consiste de estos pasos básicos:

  1. Agregar las librerias de Tiles al proyecto.
  2. Crear el archivo de configuración tiles.xml' con las definiciones de las páginas.
  3. Configurar el listener de Tiles en el archivo web.xml para que levante la configuración del punto 2.
  4. 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>
<tiles:insertAttribute name="menu"/>
<tiles:insertAttribute name="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.

Ver también