隨筆 - 312, 文章 - 14, 評論 - 1393, 引用 - 0
          數(shù)據(jù)加載中……

          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,配置代碼如下:

          <plug-in className="org.apache.struts.tiles.TilesPlugin">
              <set-property property="definitions-config" value="/WEB-INF/tiles-defs.xml" />
          </plug-in>

          其中org.apache.struts.tiles.TilesPlugin類只需要設(shè)置一個definitions-config屬性。這個屬性值指向了一個定義文件tiles-defs.xml。這個定義文件的基本格式如下:

           

            <?xml version="1.0" encoding="GBK" ?>
            
          <!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屬性賦值時,如果有多個定義文件,中間用逗號(,)分割。如下面的代碼所示:

           

          <set-property property="definitions-config" value="/WEB-INF/A-defs.xml, /WEB-INF/B-defs.xml, /WEB-INF/C-defs.xml " />

          Tiles框架還有一個定制標簽庫。我們可以使用如下的taglib指令來聲明這個標簽庫:

           

            <%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles"%>

          二、<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同樣的工作。如上述代碼也可以寫成如下形式:

           

           

            <%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles"%>
             
            
          <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)  編輯  收藏 所屬分類: javaweb 、 原創(chuàng) 、struts1.x

          主站蜘蛛池模板: 辽宁省| 阳东县| 阿荣旗| 许昌市| 涪陵区| 道孚县| 拉孜县| 阜南县| 丰台区| 四会市| 右玉县| 灌云县| 同江市| 彭泽县| 齐齐哈尔市| 赞皇县| 图们市| 玉环县| 芒康县| 南岸区| 南安市| 建德市| 巴林左旗| 新竹县| 海南省| 荆州市| 武邑县| 乐都县| 平果县| 安达市| 胶南市| 鹿泉市| 天峨县| 化隆| 龙海市| 仙桃市| 河东区| 赣州市| 工布江达县| 聂荣县| 红河县|