Tile模板和Tile組件創建復合式網頁
一:創建步驟:
(1):安裝需要的jar包(略)
(2):在web.xml中配置<taglib>標簽,注冊struts-tiles.tld文件(略)
(3):建立專門的xml文件來配置Tiles組件,例如tiles-defs.xml,該文件位于WEB-INF目錄,內容如下:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE tiles-definitions PUBLIC
?????? "-//Apache Software Foundation//DTD Tiles Configuration 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>
該文件配置了兩個Tile組件,為index-definition和product-definition,他們對應的模板都是layout.jsp
name對應模板中的attribute屬性,value是要插入的jsp網頁
(4):在struts-confgi.xml中配置TilePlugin插件,內容如下:
<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>
value="/WEB-INF/tiles-defs.xml"即對應自定義的配置Tiles組件的xml文件
(5):在web.xml中配置ActionServlet,內容如下
? <servlet>
??? <servlet-name>action</servlet-name>
??? <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
??? <init-param>
????? <param-name>config</param-name>
????? <param-value>/WEB-INF/struts-config.xml</param-value>
??? </init-param>
???? <load-on-startup>2</load-on-startup>
? </servlet>
? <servlet-mapping>
??? <servlet-name>action</servlet-name>
??? <url-pattern>*.do</url-pattern>
? </servlet-mapping>?
<!-- The Usual Welcome File List -->
? <welcome-file-list>
??? <welcome-file>index.jsp</welcome-file>
? </welcome-file-list>
這是struts基本配置,不同tiles只要要用struts就要這樣配置
二:調用的方式
(1):在jsp頁面中插入Tiles組件
先引入標簽,語句是:<%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %>
插入Tile組件,語句是:<tiles:insert definition="product-definition"/>
(2):用Struts Action調用Tiles組件
在struts-config.xml中配置Action映射,內容如下:
<action-mappings>
<action path="/index" parameter="index-definition"
type="org.apache.struts.actions.ForwardAction" />
<action path="/product" parameter="product-definition"
type="org.apache.struts.actions.ForwardAction" />
</action-mappings>
該語句定義了兩個Tiles組件,path屬性對應調用路徑,parameter屬性對應Tiles組件名稱,
如parameter="index-definition"和tiles-defs.xml中的<definition name="index-definition"&lgt;對應