1.作用:Tiles框架提供模板机制,完成页面布局和内容展示逻辑的解耦
-------分离变与不变的元素:布局是不变的,而内容是变化的
2.如何使用tiles框架
步骤:
1)在struts-config.xml配置tiles插件
<plug-in className="org.apache.struts.tiles.TilesPlugin">
<set-property property="definitions-config"
value="/WEB-INF/tiles-define.xml"/>
</plug-in>
2)定义tiles:tiles-define.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE tiles-definitions PUBLIC
"-//Apache Software Foundation//DTD Tiles Configuration 1.3//EN"
"http://struts.apache.org/dtds/tiles-config_1_3.dtd">
<tiles-definitions>
<definition name="definition1" page="/layout/baselayout.jsp">
<put name="title" value="mainspace"></put>
<put name="header" value="/layout/header.jsp"></put>
<put name="footer" value="/layout/footer.jsp"></put>
<put name="body" value="/layout/body.jsp"></put>
<put name="navigator" value="/layout/navigator.jsp"></put>
</definition>
<definition name="user" extends="definition1">
<put name="title" value="another mainspace"></put>
<put name="body" value="/usermanager/user.jsp"></put>
</definition>
</tiles-definitions>
3)定义布局以及所有的组成部分
baselayout.jsp
header.jsp
footer.sjp
body.jsp
navigator.jsp
变化的内容定义为:
<tiles:getAsString name="title"/>
<tiles:insert attribute="header">
baselayout.jsp参考代码:
-------------------------------------------------------------------------------------------------------
<%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles"%>
<html>
<head>
<title>
<tiles:getAsString name="title"/>
</title>
</head>
<body>
<table border="0" width="100%" cellspacing="5">
<tr>
<td colspan=2 align=center>
<tiles:insert attribute="header"></tiles:insert>
</td>
</tr>
<tr>
<td width="15%" valign="top">
<tiles:insert attribute='navigator'></tiles:insert>
</td>
<td align="left">
<tiles:insert attribute='body'></tiles:insert>
</td>
</tr>
<tr>
<td colspan="2">
<hr>
</td>
</tr>
<tr>
<td colspan=2 align=center>
<tiles:insert attribute="footer"></tiles:insert>
</td>
</tr>
</table>
</body>
</html>
-------------------------------------------------------------------------------------------------------
4)在页面中引用 tiles:
<tiles:insert definition="defall"/>
也可以覆盖定义的属性值
<tiles:insert definition="defall">
<tiles:put name="title" value="my page"/>
</tiles:insert>
3.使用tiles-define.xml定义tiles的好处:
1)tiles可重用(被多个页面)
2)tiles的定义可以被"继承"和"覆盖"
3)使用已定义的definition
Struts Tiles--页面模板与页面布局
最新推荐文章于 2019-08-14 13:07:13 发布