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.