我目前在我的网络应用中使用Spring 3.0.4
和Apache Tiles 2.2.2
。我想用Apache Velocity 1.6.3
替换JSP,但我对如何做到这一点感到有些困惑。最后,我希望能够在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类。
谢谢!
答案 0 :(得分:2)
我创建了辅助类,其中包括与velocity集成的tile: https://github.com/pete911/openhouse-web 向下滚动时有一个descritption。课程也可以在maven中心找到。
答案 1 :(得分: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 ..这是将保存definiotion名称等的文件。
如果您使用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>