Struts1之Tiles框架
1.在struts-config.xml配置
<plug-in className="org.apache.struts.tiles.TilesPlugin"> <set-property property="definitions-config" value="/WEB-INF/classes/struts/core/tiles-definitions.xml" /> <set-property property="definitions-parser-validate" value="true" /> </plug-in>
TilesPlugin插件用于加载Tiles组件的配置文件。在plug-in元素中包含几个set-property子元素,用于向TilesPlugin插件传入附加的参数:
·definitions-config参数:指定Tiles组件的配置文件,如果有多个配置文件,则它们之间用逗号分隔。
·definitions-parser-validate参数:指定XML解析器是否验证Tiles配置文件,可选值包括true和false,默认值为true。
2.在titles-definitions.xml配置
<tiles-definitions> <!-- Default Container --> <definition name="index-definition" path="/templates/tiles/default.jsp"> <put name="title" value="www.lenovo-cw.com"></put> <put name="TopContainer" value="/templates/global/topMenu.jsp"> </put> <put name="LeftContainer" value="/templates/tiles/defaultPart/blank.jsp"> </put> <put name="MainContainer" value="/templates/tiles/defaultPart/blank.jsp"> </put> <put name="RightContainer" value="/templates/tiles/defaultPart/blank.jsp"> </put> <put name="FooterContainer" value="/templates/tiles/defaultPart/blank.jsp"> </put> </definition> </tiles-definitions>
3.调用Titles组件显示页面:
第一种方式:index.jsp
<%@ page contentType="text/html; charset=UTF-8" %> <%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %> <tiles:insert definition="index-definition"/>
第二种方式:如果Tiles组件代表 完整的网页,可以直接通过Struts Action来调用Tiles组件
<action-mappings> <action path="/index" type="org.apache.struts.actions.ForwardAction" parameter="index-definition"> </action> </action-mappings>
接下来通过浏览器访问 http://localhost:8080/tilestaglibs/index.do,该请求先被转发到ForwardAction处理,ForwardAction处理后再把请求转发给名为"index-definition"的Tiles组件,最后在浏览器端,用户将看到和index.jsp相同的页面。
通过Struts Action来调用Tiles组件,可以充分发挥Struts框架负责流程控制的功能。此外,可以减少JSP文件的数目。例如,如果直接通过Struts Action来调用名为"index-definition"的Tiles组件,就不必再创建第一种显示方法的index.jsp文件。
参考:
1. http://hi.baidu.com/lee5017779/item/45398e17ea12e4e65f53b199
2. http://tech.ccidnet.com/art/1110/20041125/181701_1.html