2010-11-06 8 views
5

Actualmente estoy usando Spring 3.0.4 y Apache Tiles 2.2.2 en mi aplicación web. Me gustaría reemplazar JSP con Apache Velocity 1.6.3 pero estoy algo confundido sobre cómo hacer esto. En última instancia, me gustaría poder hacer lo siguiente en una definición de Tiles:Uso de Velocity with Tiles y Spring

<definition name="basicLayout" template="/WEB-INF/layout/basicLayout.vm"> 
    <put-attribute name="header" value="/WEB-INF/layout/header.vm" /> 
    <put-attribute name="content-area" value="/WEB-INF/layout/content.vm" /> 
    <put-attribute name="footer" value="/WEB-INF/layout/footer.vm" /> 
</definition> 

¿Esto es posible? Si es así, ¿necesito crear clases de vista personalizadas para apoyarlo? Actualmente estoy usando las clases estándar de Spring VelocityConfigurer, TilesConfigurer, VelocityView y TilesView.

Gracias!

+0

¿Has visto la sección 16.4 de la documentación de referencia del muelle? http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/view.html – iftheshoefritz

Respuesta

0

dentro de su definición servlet se necesita lo siguiente:

<bean id="viewResolver" 
    class="org.springframework.web.servlet.view.UrlBasedViewResolver"> 
    <property name="viewClass"> 
     <value> 
      org.springframework.web.servlet.view.tiles2.TilesView 
    </value> 
    </property> 
</bean> 
<bean id="tilesConfigurer" 
    class="org.springframework.web.servlet.view.tiles2.TilesConfigurer"> 
    <property name="definitions"> 
     <list> 
      <value>/WEB-INF/tiles.xml</value> 
     </list> 
    </property> 
</bean> 

como se puede ver se declara tiles.xml ..la es el archivo que contendrá el nombre definiotion etc.

si está utilizando Maven necesita las siguientes dependencias:

<dependency> 
     <groupId>org.apache.tiles</groupId> 
     <artifactId>tiles-api</artifactId> 
     <version>2.2.1</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.tiles</groupId> 
     <artifactId>tiles-core</artifactId> 
     <version>2.2.1</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.tiles</groupId> 
     <artifactId>tiles-jsp</artifactId> 
     <version>2.2.1</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.tiles</groupId> 
     <artifactId>tiles-servlet</artifactId> 
     <version>2.2.1</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.tiles</groupId> 
     <artifactId>tiles-template</artifactId> 
     <version>2.2.1</version> 
    </dependency> 
2

he creado clases de ayuda que incluyen la integración azulejos con velocidad: https://github.com/pete911/openhouse-web hay una descripción cuando se desplaza hacia abajo. las clases se pueden encontrar en maven central también.