所使用Spring版本3.1.0.RELEASE,Tiles版本2.2.2。jar包未做整理- -
向Spring容器添加监听启动Tiles的配置:
<bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tile2.TilesConfigurer">
<property name="definitions">
<value>/WEB-INF/tiles.xml</value>
</property>
</bean>
Spring MVC的视图解析器和Tiles视图解析器配置:
<bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver" p:order="1">
<property name="viewClass"><!--指定解析类 -->
<value>org.springframework.web.servlet.view.tile2.TilesView</value>
</property>
</bean>
<bean class="org.springframework.web.servlet.view.IntenalResourceViewResolver">
<property name="viewClass">
<value>org.springframework.web.servlet.view.JstlView</value>
</property>
<property name="contentType" value="text/html"></property>
<property name="prefix" value="/modules/project/"></property>
<property name="suffix" value=".jsp"></property>
<property name="order" value="2"></property>
</bean>
Tiles 简单模板配置如下:
<tiles-definitions>
<definition name="base" template="/modules/project/platform/layout.jsp">
<put-attribute name="title" value="my title"/>
<put-attribute name="body" value="my body"/>
</definition>
<definition name="*/*.page" extends="base">
<put-attribute name="title" value="DIY title"/>
<put-attribute name="body" value="DIY body"/>
</definition>
</tiles-definitions>
modules等目录和文件确保WebRoot相对路径的存在哦~对了,最后是如何定义templete指定的jsp文件(本例指定了layout.jsp,注意attribute的映射关系):
<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles"%>
<!-- 页面其他部分,随便写 -->
<tiles:insertAttribute name="body" />
<!-- 页面另外部分,发挥想象~版权声明,导航等等 -->
<!-- 上面的insertAttribute获取的就是模板中定义的body~Over,Enjoy! -->