使用Velocity with Tiles和Spring

And*_*dre 5 java spring velocity spring-mvc tiles2

我目前正在使用Spring 3.0.4,并Apache Tiles 2.2.2在我的web应用程序.我想替换JSP,Apache Velocity 1.6.3但我对如何做到这一点感到困惑.最后,我希望能够在Tiles定义中执行以下操作:

<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>
Run Code Online (Sandbox Code Playgroud)

这可能吗?如果是这样,我是否需要创建任何自定义视图类来支持它?我目前正在使用标准的Spring VelocityConfigurer,TilesConfigurer,VelocityView,TilesView类.

谢谢!

gia*_*api 0

在 servlet 定义中,您需要以下内容:

    <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>
Run Code Online (Sandbox Code Playgroud)

如您所见,您声明了tiles.xml..这是将保存定义名称等的文件。

如果您使用 Maven,则需要以下依赖项:

<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>
Run Code Online (Sandbox Code Playgroud)