Tiles框架为创建Web页面提供了一个模板机制,将网页的布局和内容分开。
Tiles框架具有如下特性:
。创建可重用的模板
。动态创建和装载页面
。定义可重用的Tiles组件
。支持国际化
Tiles框架包含内容:
。Tiles标签库
。Tiles组件的配置文件
。TilesPlugIn插件
实例:index.jsp和product.jsp网页
第一步:在专门的xml文件中配置Tiles组件
tiles-defs.xml
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE tiles-definitions PUBLIC "-Apache Software Fondation//DTD Tiles Configurtion 1.1//EN" "http://jakarta.apache.org/struts/dtds/tiles-config_1_1.dtd">
<tiles-definitions>
<definition name="index-definition" path="/layout.jsp">
<put name="sidebar" value="sidebar.jsp"/>
<put name="header" value="header.jsp"/>
<put name="content" value="indexContent.jsp"/>
<put name="footer" value="footer.jsp"/>
</definition>
<definition name="product-definition" path="/layout.jsp">
<put name="sidebar" value="sidebar.jsp"/>
<put name="header" value="header.jsp"/>
<put name="content" value="productContent.jsp"/>
<put name="footer" value="footer.jsp"/>
</definition>
</tiles-definitions>
第二步:在Struts配置文件中配置TilesPlugin插件
<plug-in className="org.apache.struts.tiles.TilesPlugin">
<set-property property="definitions-config" value="/WEB-INF/tiles.defs.xml" />
<set-property property="definitions-parser-validate" value="true" />
</plug-in>
第三步:使用Tiles插件
在index.jsp和product.jsp中插入Tiles组件
index.jsp
<%@ page contentType="text/html;charset=UTF-8" %>
<%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %>
<tiles:insert definition="index-definition" />
product.jsp
<%@ page contentType="text/html;charset=UTF-8" %>
<%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %>
<tiles:insert definition="product-definition" />
通过Struts Action来调用Tiles组件
<action-mapping>
<action path="/index"
type="org.apache.struts.actions.ForwardAction"
parameter="index-definition">
</action>
<action path="/index"
type="com.travelsky.thub.hotelbe.hotel.query.action.RecommendHotelQueryAction">
<forward name="default" path="index-definition"></forward>
</action>
</acton-mapping>
1.相同的部分写到公共文件中,修改时只需修改公共文件,所有引用的地方都会发生改变。
2.采用Tiles模板机制,模板中包含了网页共同的布局,如果布局发生了变化,只需要修改模板文件,无需修改具体的网页文件。
3.一个模板可以被多个web页面共用,Tiles组件可以实现多重组合。
Tiles框架具有如下特性:
。创建可重用的模板
。动态创建和装载页面
。定义可重用的Tiles组件
。支持国际化
Tiles框架包含内容:
。Tiles标签库
。Tiles组件的配置文件
。TilesPlugIn插件
实例:index.jsp和product.jsp网页
第一步:在专门的xml文件中配置Tiles组件
tiles-defs.xml
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE tiles-definitions PUBLIC "-Apache Software Fondation//DTD Tiles Configurtion 1.1//EN" "http://jakarta.apache.org/struts/dtds/tiles-config_1_1.dtd">
<tiles-definitions>
<definition name="index-definition" path="/layout.jsp">
<put name="sidebar" value="sidebar.jsp"/>
<put name="header" value="header.jsp"/>
<put name="content" value="indexContent.jsp"/>
<put name="footer" value="footer.jsp"/>
</definition>
<definition name="product-definition" path="/layout.jsp">
<put name="sidebar" value="sidebar.jsp"/>
<put name="header" value="header.jsp"/>
<put name="content" value="productContent.jsp"/>
<put name="footer" value="footer.jsp"/>
</definition>
</tiles-definitions>
第二步:在Struts配置文件中配置TilesPlugin插件
<plug-in className="org.apache.struts.tiles.TilesPlugin">
<set-property property="definitions-config" value="/WEB-INF/tiles.defs.xml" />
<set-property property="definitions-parser-validate" value="true" />
</plug-in>
第三步:使用Tiles插件
在index.jsp和product.jsp中插入Tiles组件
index.jsp
<%@ page contentType="text/html;charset=UTF-8" %>
<%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %>
<tiles:insert definition="index-definition" />
product.jsp
<%@ page contentType="text/html;charset=UTF-8" %>
<%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %>
<tiles:insert definition="product-definition" />
通过Struts Action来调用Tiles组件
<action-mapping>
<action path="/index"
type="org.apache.struts.actions.ForwardAction"
parameter="index-definition">
</action>
<action path="/index"
type="com.travelsky.thub.hotelbe.hotel.query.action.RecommendHotelQueryAction">
<forward name="default" path="index-definition"></forward>
</action>
</acton-mapping>
1.相同的部分写到公共文件中,修改时只需修改公共文件,所有引用的地方都会发生改变。
2.采用Tiles模板机制,模板中包含了网页共同的布局,如果布局发生了变化,只需要修改模板文件,无需修改具体的网页文件。
3.一个模板可以被多个web页面共用,Tiles组件可以实现多重组合。