Integración de Tiles con Spring

Integración de Tiles con Spring

Lo primero será mostrar como quedara la estructura del proyecto.

Librerías necesarias:


Vera como crear un diseño sencillo de Tiles con las regiones de un cabecera, menú, cuerpo,menu y pie de página.

Ahora vamos a mostrar un esquema que como sería una estructura con Tiles.


En Spring para utilizar los Tiles, hay que configurar la definición de tiles en el siguiente en el archivo de configuración de Spring.

<?xml
version=“1.0”
encoding=“UTF-8”?>

<beans
xmlns=http://www.springframework.org/schema/beans&#8221;

    xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance&#8221;
xmlns:p=http://www.springframework.org/schema/p&#8221;

    xmlns:context=http://www.springframework.org/schema/context&#8221;

    xsi:schemaLocation=http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd

        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd&#8221;>

    

    <bean
id=“viewResolver”
class=“org.springframework.web.servlet.view.ResourceBundleViewResolver”
p:basename=“views”
/>


<context:component-scan
base-package=“com.amalakaky.web”
/>


<bean
id=“tilesConfigurer”
class=“org.springframework.web.servlet.view.tiles2.TilesConfigurer”
p:definitions=“/WEB-INF/tiles-defs.xml”
/>

</beans>

Utilizando las definiciones de atributos especifican la ubicación del archivo de definición de los tiles. Aquí la ubicación es “/ WEB-INF/tiles-defs.xml“. El archivo de definición de los tiles se muestra a continuación.

<?xml
version=“1.0”
encoding=“UTF-8”
?>

<!DOCTYPE tiles-definitions
PUBLIC


“-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN”


http://tiles.apache.org/dtds/tiles-config_2_0.dtd&#8221;>

<tiles-definitions>


<definition
name=“baseLayout”
template=“/WEB-INF/tiles/baseLayout.jsp”>


<put-attribute
name=“title”
value=“Template”/>


<put-attribute
name=“header”
value=“/WEB-INF/tiles/cabecera.jsp”/>


<put-attribute
name=“menu”
value=“/WEB-INF/tiles/menu.jsp”/>


<put-attribute
name=“body”
value=“/WEB-INF/tiles/cuerpo.jsp”/>


<put-attribute
name=“footer”
value=“/WEB-INF/tiles/pie.jsp”/>


</definition>


<definition
name=“welcome”
extends=“baseLayout”>


<put-attribute
name=“title”
value=“Welcome”/>


<put-attribute
name=“body”
value=“/WEB-INF/jsp/welcome.jsp”/>


</definition>


<definition
name=“amigos”
extends=“baseLayout”>


<put-attribute
name=“title”
value=“Amigos”/>


<put-attribute
name=“body”
value=“/WEB-INF/jsp/amigos.jsp”/>


</definition>


<definition
name=“correos”
extends=“baseLayout”>


<put-attribute
name=“title”
value=“Correos”/>


<put-attribute
name=“body”
value=“/WEB-INF/jsp/correos.jsp”/>


</definition>


<definition
name=“oficina”
extends=“baseLayout”>


<put-attribute
name=“title”
value=“Oficina”/>


<put-attribute
name=“body”
value=“/WEB-INF/jsp/oficina.jsp”/>


</definition>

</tiles-definitions>

Aquí en primer lugar definir un diseño de base (baseLayout), más tarde ampliar la base de diseño y crear las definiciones de tiles, cambiando únicamente el título y las regiones del cuerpo.
Para mostrar las vistas se utilizan el ResourceBundleViewResolver.

Por defecto, el archivo views.properties se utiliza para almacenar los pares de valores clave, que especifica está utilizando el atributo de nombre base.

views.properties

welcome.(class)=org.springframework.web.servlet.view.tiles2.TilesView

welcome.url=welcome

amigos.(class)=org.springframework.web.servlet.view.tiles2.TilesView

amigos.url=amigos

oficina.(class)=org.springframework.web.servlet.view.tiles2.TilesView

oficina.url=oficina

correos.(class)=org.springframework.web.servlet.view.tiles2.TilesView

correos.url=correos

sobre.(class)=org.springframework.web.servlet.view.JstlView

sobre.url=/WEB-INF/jsp/sobre.jsp

Los welcome, amigos, oficina, correos, y correos se refiere a los nombres de la definición del tiles (la de la derecha del signo =). Para las vistas de tiles usamos la clase “org.springframework.web.servlet.view.tiles2. TilesView“.

Usted también puede tener otras vistas y las opciones de tiles a la vez. Sobre la URL está asignada a la página sobre.jsp con un org.springframework.web.servlet.view.JstlView.

El archivo baseLayout.jsp contiene la estructura que contendrá las diferentes regiones.

<%@
taglib
uri=http://tiles.apache.org/tags-tiles&#8221;
prefix=“tiles”
%>

<!DOCTYPE HTML
PUBLIC
“-//W3C//DTD HTML 4.01 Transitional//EN”


http://www.w3.org/TR/html4/loose.dtd&#8221;>

<html>


<head>


<meta
http-equiv=“Content-Type”
content=“text/html; charset=UTF-8”>


<title><tiles:insertAttribute
name=“title”
ignore=“true”
/></title>


</head>


<body>


<table
border=“1”
cellpadding=“2”
cellspacing=“2”
align=“center”>


<tr>


<td
height=“30”
colspan=“2”>


<tiles:insertAttribute
name=“cabecera” />


</td>


</tr>


<tr>


<td
height=“250”>


<tiles:insertAttribute
name=“menu”
/>


</td>


<td
width=“350”>


<tiles:insertAttribute
name=“cuerpo” />


</td>


</tr>


<tr>


<td
height=“30”
colspan=“2”>


<tiles:insertAttribute
name=“pie” />


</td>


</tr>


</table>


</body>

</html>

Aquí se utiliza una anotación para gestionar la solicitud. En la página redirect.jsp que remitirá la solicitud a la dirección URL welcome.htm.

<% response.sendRedirect(“welcome.htm”); %>

La url welcome.htm estará a cargo de la clase WelcomeController, donde lo remitimos a la página de bienvenida.

package com.amalakaky.web;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

@Controller

public
class WelcomeController {

    @RequestMapping(“/welcome.htm”)

    public String redirect()

    {

        return
“welcome”;

    }

}

Puedes descargar el ejemplo aqui:Descargar

Anuncios
Minientrada | Esta entrada fue publicada en Spring. Guarda el enlace permanente.

Responder

Por favor, inicia sesión con uno de estos métodos para publicar tu comentario:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s