Struts1.x系列教程(22):Tiles框架簡介
本文為原創(chuàng),如需轉(zhuǎn)載,請注明作者和出處,謝謝!
上一篇:Struts1.x系列教程(21):使用MappingDispatchAction類調(diào)用不同的Action方法
Tiles框架是Struts的一個插件。我們可以使用Tiles框架來進行頁面布局設(shè)計。Tiles框架提供了一種模板機制,它可以將網(wǎng)頁內(nèi)容和布局分離,并允許先創(chuàng)建模板,然后在頁面中再插入具體的內(nèi)容。
一、安裝Tiles框架
為了使用Tiles,我們必須首先在struts-config.xml文件中聲明Tiles,配置代碼如下:
<set-property property="definitions-config" value="/WEB-INF/tiles-defs.xml" />
</plug-in>
其中org.apache.struts.tiles.TilesPlugin類只需要設(shè)置一個definitions-config屬性。這個屬性值指向了一個定義文件tiles-defs.xml。這個定義文件的基本格式如下:
<!DOCTYPE tiles-definitions PUBLIC
"-//Apache Software Foundation//DTD Tiles Configuration 1.1//EN"
"http://struts.apache.org/dtds/tiles-config_1_1.dtd">
<tiles-definitions>
<definition name="def1" path="/tiles/layout1.jsp">
<put name="title" value="我的標題" />
<put name="header" value="header.jsp" />


</definition>
<definition name="def2" path="/tiles/layout1.jsp" >


</definition>
</tiles-definitions>
其中<tiles-definitions>元素中可以包含多個<definition>子元素。我們還可以將一個定義文件拆成多個定義文件,如A-defs.xml、B-defs.xml和C-defs.xml。在為definitions-config屬性賦值時,如果有多個定義文件,中間用逗號(,)分割。如下面的代碼所示:
Tiles框架還有一個定制標簽庫。我們可以使用如下的taglib指令來聲明這個標簽庫:
二、<jsp:include>和<tiles:insert>標簽
由于在編寫Web程序的過程中,很多頁面會出現(xiàn)同樣的內(nèi)容,如所有的頁面都使用同樣的的頁頭和頁尾。在JSP標簽庫中提供了一個include標簽可以將其他的頁面包含到當(dāng)前的頁面中,如我們可以使用如下的代碼包含頁頭和頁尾。


<jsp:include page = "header.jsp" />


<jsp:include page = "footer.jsp" />


在Tiles框架的標簽庫中也提供了一個insert標簽。這個標簽也可以完成和include同樣的工作。如上述代碼也可以寫成如下形式:


<tiles:insert page = "header.jsp" />


<tiles:insert page = "footer.jsp" />


雖然include和insert標簽都可以很好地解決代碼重用問題,但是并不能完全避免代碼重復(fù)的問題。如很多使用include或insert標簽的頁面也擁有很多類似或相同的代碼。如使用css布局、用table、div等HTML元素進行位置控制等。如果想避免這些代碼的重復(fù)。光使用include或insert標簽是無法做到的。而要想做到這一點,就要使用下一篇文章中介紹的Tiles模板。
下一篇:Struts1.x系列教程(23):使用Tiles模板進行布局
《Android開發(fā)完全講義(第2版)》(本書版權(quán)已輸出到臺灣)
http://product.dangdang.com/product.aspx?product_id=22741502
《Android高薪之路:Android程序員面試寶典 》http://book.360buy.com/10970314.html
新浪微博:http://t.sina.com.cn/androidguy 昵稱:李寧_Lining
posted on 2009-02-25 22:42 銀河使者 閱讀(3064) 評論(0) 編輯 收藏 所屬分類: java 、web 、 原創(chuàng) 、struts1.x