1、配置Tiles视图解析器
为了在Spring中使用Tiles,需要一个TilesConfigurer bean(负责定位和加载Tile定义并协调生成Tiles)和一个TilesViewResolver bean(将逻辑视图名称解析为Tile定义)。
配置TilesConfigurer来解析定义(java方式):
@Bean
public TilesConfigurer tilesConfigurer(){
TilesConfigurer tiles = new TilesConfigurer();
tiles.setDefinitions(new String[]{
"/WEB-INF/layout/tiles.xml"
});
tiles.setCheckRefresh(true);
return tiles;
}
配置TilesViewResolver(java方式):
@Bean
public ViewResolver viewResolver(){
return new TilesViewResolver;
}
XML方式配置TilesConfigurer和TilesViewResolver:
<bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles3.TilesConfigurer">
<property name="definitions">
<list>
<value>/WEB-INF/layout/titles.xml</value>
<value>/WEB-INF/views/**/titles.xml</value>
</list>
</property>
</bean>
<bean id="viewResolver" class="org.spring framework.web.servlet.view.tiles3.TilesViewResolver" />
2、定义Tiles
例子:
<tiles-definitions>
<definition name="base"
template="WEB-INF/layout/page.jsp">
<put-attribute name="header"
value="/WEB-INF/layout/header.jsp" />
<put-attribute name="footer"
value="/WEB-INF/layout/footer.jsp" />
</definition>
<definition name="home" extends="base">
<put-attribute name="body"
value="/WEB-INF/views/home.jsp" />
</definition>
</tiles-definitions>
每个<definition>元素都定义一个tile,它最终引用的是一个JSP模板。
page.jsp:
<%@ taglib uri="http://www.springframework.org/tags" prefix="s" %>
<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="t" %>
<%@ page session="false" %>
<html>
<head>
<title>Spittr</title>
<link rel="stylesheet"
type="text/css"
href="<s:url value="/resources/style.css" />" >
</head>
<body>
<div id="header">
<t:insertAttribute name="header" />
</div>
<div id="content">
<t:insertAttribute name="body" />
</div>
<div id="footer">
<t:insertAttribute name="footer" />
</div>
</body>
</html>
注意继承和扩展关系,header和footer也可以被覆盖。