mvc example and java spring spring-mvc web-frameworks apache-tiles

java - example - Mejor alternativa a Apache Tiles



spring mvc and apache tiles (5)

(similar a this )

No necesitas una definición para cada acción.

Esta configuración de placa de caldera se cuelga de las baldosas-1 días. Realmente no es necesario con tiles-2 cuando se introdujeron comodines, y especialmente con tiles-3 junto con el OptionsRenderer.

Aquí hay un tech.finn.no/the-ultimate-view-tiles-3 que te ayudará con

  • Integración de la primavera a las baldosas.
  • definiciones con comodines,
  • implementando un patrón alternativo utilizando el OptionsRenderer, y
  • definiciones de composición.

Estoy buscando un marco que sea mejor y más fácil de usar que Apache Tiles (que hasta ahora he usado un par de veces).

Con Tiles, parece que cuando tengo 100 acciones necesito crear 100 archivos jsp y crear 100 definiciones en tiles.xml .

¿Hay un mejor marco para administrar mis plantillas? Quiero crear, por ejemplo, 2 plantillas:

a) menú y columna de contenido
b) Menú, columna para contenido, columna derecha con banner.

En ambas plantillas el menú es constante. En la template b , la columna de la derecha es constante, por lo que solo la columna de contenido es diferente. Para este ejemplo simple no quiero definir cada archivo JSP que amplíe la template a (solo para proporcionar un cuerpo). Eso es cojo imo. O tal vez estoy cojo y puedo definir una plantilla POR DEFECTO en Apache Tiles y simplemente no la estoy usando bien. En cualquier caso, toda la ayuda apreciada.


Basándome en la experiencia, le recomendé encarecidamente a Apache Wicket.


En general, recomendaría SiteMesh sobre Tiles.

Here''s cómo configurar SiteMesh 3

Puede usar Tiles para las plantillas en la página, pero use SiteMesh para la plantilla de todo el sitio. Sin embargo...

Cómo hacer que los azulejos chupen menos:

  1. Utilice la convención sobre la configuración. Por ejemplo, ponga sus definiciones en webapp/WEB-INF/tiles.xml y no es necesario que diga los mosaicos dónde están.

  2. Usa comodines:

<definition name="default" template="/WEB-INF/templates/default.jsp"> <put-attribute name="titleKey" value=""/> <put-attribute name="body" value=""/> </definition> <definition name="*" extends="default"> <put-attribute name="titleKey" value="{1}.title"/> <put-attribute name="body" value="/WEB-INF/views/{1}.jsp" /> </definition>

Si su controlador devuelve el index nombre de vista, coincidirá con la definición * y usará el archivo JSP /WEB-INF/views/index.jsp para el cuerpo, y use la propiedad de mensaje index.title .

Si su controlador devuelve el nombre de vista contact-us , coincidirá con la definición * , y usará el archivo JSP /WEB-INF/views/contact-us.jsp para el cuerpo, y usará la propiedad del mensaje contact-us.title

En su plantilla, agregue:

<c:set var="titleKey"><tiles:getAsString name="titleKey" /></c:set>

y

<title><spring:message code="${titleKey}"/></title>

Agregue el bean ReloadableResourceBundleMessageSource al contexto de su aplicación servlet.

Haga un archivo /src/main/resources/messages.properties , con contenido como:

index.title = Welcome to Acme, Inc. contact-us.title = Contact Us


Otro enfoque es Sitemesh . Fue diseñado para acoplar vistas donde no se puede modificar el original, por lo que es más un marco de transformación / decoración html que un marco de plantillas como Azulejos.

En mi opinión personal, Tiles es el mejor enfoque para las aplicaciones, e intentaría implementar algún tipo de resolución (basado en algunas convenciones de nomenclatura) que hace que los archivos xml sean obsoletos, pero esa no era la cuestión.

Ver: Esta introducción anterior muestra cómo funciona SiteMesh.


Terminé usando JSF + Facelets. Los he combinado con Spring MVC y funciona a la perfección.