您可以在JSP頁面中直接定義管理版面配置資源,這樣的作法比較簡單,且可以藉由重新定義來達到再用定義檔的目 的,使用上更有彈性,例如我們可以這麼定義一個JSP頁面來管理版面配置資源:
- definition1.jsp
<%@page contentType="text/html; charset=Big5"%>
<%@taglib prefix="tiles" uri="/tags/struts-tiles"%>
<tiles:definition id="myLayout" page="/tiles/myLayout.jsp">
<tiles:put name="title" value="Tiles範例" />
<tiles:put name="header" value="/tiles/header.jsp" />
<tiles:put name="menu" value="/tiles/menu.jsp" />
<tiles:put name="footer" value="/tiles/footer.jsp" />
<tiles:put name="body" value="/tiles/body.jsp" />
</tiles:definition>
要使用這個JSP定義檔,可以使用include的方式來達到重複使用的目的,例如:
- test.jsp
<%@taglib prefix="tiles" uri="/tags/struts-tiles"%>
<%@include file="/tiles/definition1.jsp"%>
<tiles:insert beanName="myLayout" flush="true"/>
讀取頁面時,Tiles會建立一個定義檔物件,id為物件的名稱,而之後我們使用beanName來指定定義檔物件的名稱。
如果您要在某個頁面中重新定義內容網頁指向的位置,可以重新定義某些屬性值,例如:
- test.jsp
<%@taglib prefix="tiles" uri="/tags/struts-tiles"%>
<%@include file="/tiles/definition1.jsp"%>
<tiles:insert beanName="myLayout" flush="true">
<tiles:put name="title" value="Tiles範例二" />
<tiles:put name="header" value="/tiles/header2.jsp" />
</tiles:insert>
也可以不經由定義檔而直接使用某個Layout頁面,例如:
- test.jsp
<%@page contentType="text/html; charset=Big5"%>
<%@taglib prefix="tiles" uri="/tags/struts-tiles"%>
<tiles:insert page="/tiles/myLayout.jsp" flush="true">
<tiles:put name="title" value="Tiles範例" />
<tiles:put name="header" value="/tiles/header.jsp" />
<tiles:put name="menu" value="/tiles/menu.jsp" />
<tiles:put name="footer" value="/tiles/footer.jsp" />
<tiles:put name="body" value="/tiles/body.jsp" />
</tiles:insert>
這麼作的好處是簡單方便,可以直接使用Layout頁面而無法額外定義管理檔案,而缺點就是無法再重用這個頁面的定義內容。