2010-11-06 13 views
5

Attualmente sto usando Spring 3.0.4 e Apache Tiles 2.2.2 nella mia app web. Mi piacerebbe sostituire JSP con Apache Velocity 1.6.3 ma sono un po 'confuso su come farlo. In definitiva, mi piacerebbe essere in grado di effettuare le seguenti operazioni in una definizione Piastrelle:Uso di Velocity con piastrelle e molla

<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> 

è possibile? In tal caso, devo creare delle classi di visualizzazione personalizzate per supportarlo? Attualmente sto usando le classi standard Spring VelocityConfigurer, TilesConfigurer, VelocityView, TilesView.

Grazie!

+0

Avete visto la sezione 16.4 della documentazione di riferimento di primavera? http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/view.html – iftheshoefritz

risposta

0

all'interno della vostra definizione servlet è necessario quanto segue:

<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> 

come si può vedere si dichiara tiles.xml ..si è il file che conterrà il nome definiotion ecc

se siete utilizzando Maven è necessario le seguenti dipendenze:

<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

ho creato classi di supporto che comprendono l'integrazione di piastrelle con la velocità: https://github.com/pete911/openhouse-web c'è una descrizione quando si scorre verso il basso. le classi possono essere trovate anche in maven central.