本文以最簡單而有效的形式記錄tiles的使用過程,以備以后使用時快速參考。
1.先建一個layout.jsp布局頁面
******
<tr>
<td height="113" colspan="2" scope="col">
<tiles:insert attribute="top"/>
</td>
</tr>
<tr>
<td width="21%" height="409" scope="row">
<tiles:insert attribute="left"/>
</td>
<td width="79%" height="409" scope="row">
<tiles:insert attribute="main"/>
</td>
</tr>
*******
2.新建一個 tiles-defs.xml文件,并在其中做相應(yīng)的配置。
*********
<?xml version="1.0" encoding="UTF-8"?>
<!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="member-definition" path="/Jsp/layout.jsp">
<put name="top" value="/mTop.do"/>
<put name="left" value="/mLeft.do"/>
<put name="main" value="/defaultMmain.do"/>
</definition>
</tiles-definitions>
*********
這樣就相當于通過xml文件定義了一個member.jsp.
3.在web.xml和struts-config.xml和web.xml中做相應(yīng)配置.
在struts-config.xml中配置如下:
***********
<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>
***********
在web.xml中配置如下:
************
<init-param>
<param-name>definitions-config</param-name>
<param-value>/WEB-INF/tiles-defs.xml</param-value>
</init-param>
************
4.調(diào)用Tiles組件
Tiles組件是通過Struts Action來調(diào)用的,在struts-config.xml中做如下action配置:
*************
<action
path="/member"
parameter="member-definition"
type="org.apache.struts.actions.ForwardAction"/>
**************
然后可以通過訪問/member.do訪問相當于member.jsp的Tiles組件.
II ---------------------tiles的高級使用--------------------------
1 .tiles組件的嵌套
然后可以通過訪問/member.do訪問相當于member.jsp的Tiles組件.
*************
<tiles-definitions>
<definition name="member-definition" path="/Jsp/layout.jsp">
<put name="top" value="menu-definition" type="definition"/>
<put name="left" value="/mLeft.do"/>
<put name="main" value="/defaultMmain.do"/>
</definition>
************
其中menu-definiton作為一個子tiles組件而單獨配置,這樣就可以把一個個簡單的tiles組件組合成一個復雜的tiles組件。
2.Tiles組件的擴展
Tiles組件的擴展,在有很多tiles組件使用相同的模板頁面layout.jsp的時候,特別有用處,我們先定義一個通用的tiles組件如base-definition,其中組件中相應(yīng)的地方value設(shè)置為空。
*************
<definition name="base-definition" path="/Jsp/layout.jsp">
<put name="top" value="/mTop.do"/>
<put name="left" value="/mLeft.do"/>
<put name="main" value=" "/>
</definition>*************
其它tiles組件可以通過集成它,并把name="main"中的value設(shè)置成自己特有的,
如:
**************
<definition name="member-definition" extends="base.definition">
<put name="main" value="/defaultMmain.do "/>
</definition>
******************