5

我目前正在使用Spring 3.0.4andApache Tiles 2.2.2在我的网络应用程序中。我想用 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>

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

谢谢!

4

2 回答 2

2

我创建了帮助类,其中包括与速度的瓦片集成: https ://github.com/pete911/openhouse-web 向下滚动时有一个描述。类也可以在 Maven 中心找到。

于 2011-05-25T10:23:27.997 回答
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>

如您所见,您声明了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>
于 2011-03-03T14:51:43.947 回答