Aspectos avanzados de Sitemesh
0. Índice de
contenidos.
1. Entorno
Este tutorial está escrito usando el siguiente entorno:
- Hardware: Portátil Mac Book Pro 17″ (2,6 Ghz Intel Core i7, 8 GB DDR3)
- Sistema Operativo: Mac OS X Snow Leopard 10.6.4
- Sitemesh 2.4.2
- Maven 3.0.4
2. Introducción
Este tutorial vamos a profundizar un poco más en el uso de Sitemesh, del cual ya vimos una introducción en este otro tutorial. El cual os aconsejo que leais para poder seguir este.
Vamos a ver como configurar Sitemesh para poder aplicar un decorador u otro en función de condiciones como el idioma del navegador, el agente de usuario que lo visualiza, por un parámetro en el la URL, por un tag META, …
3. Vamos al lío
Para configurar Sitemesh tenemos que crear un fichero en la carpeta WEB-INF del proyecto con el siguiente contenido:
<?xml version="1.0" encoding="UTF-8"?>
<property name="decorators-file" value="/WEB-INF/decorators.xml"/>
<excludes file="${decorators-file}"/>
<param name="property.1" value="meta.decorator" />
<param name="property.2" value="decorator" />
<param name="match.en" value="en" />
<param name="match.zh" value="es" />
<param name="match.Android" value="mobile" />
<param name="match.MSIE" value="ie" />
<param name="match.Mozilla" value="ns" />
<param name="match.Chrome" value="ch"/>
<param name="match.Safari" value="sf"/>
<param name="decorator.parameter" value="decorator" />
<param name="parameter.name" value="confirm" />
<param name="parameter.value" value="true" />
<param name="config" value="${decorators-file}" />
Para esta configuración tendríamos que añadir el siguiente contenido en el fichero decorators.xml que ya conocemos:
<?xml version="1.0" encoding="UTF-8"?>
/*
<decorator name="main-en" page="main-en.jsp"/>
<decorator name="main-ie" page="main-ie.jsp"/>
<decorator name="test" page="main-test.jsp"/>
<decorator name="decorator-meta" page="main-decorator.jsp"/>
<decorator name="main-mobile" page="main-decorator.jsp"/>
El último paso sería crear cada uno de los decoradores definidos con el contenido que se quiera para el caso específico.
Ahora os animo a que probéis cada uno de los casos siguiendo estos tutoriales.
4. Conclusiones
Gracias a estos tutoriales hemos echado un vistazo a este framework que como véis puede ser de gran utilidad cuando nos solicitan personalizar la interfaz de forma dinámica en función de ciertos parámetros.
Cualquier duda o sugerencia en la zona de comentarios.
Saludos.