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

          Struts1.x系列教程(22):Tiles框架簡介

          本文為原創,如需轉載,請注明作者和出處,謝謝!

          上一篇:Struts1.x系列教程(21):使用MappingDispatchAction類調用不同的Action方法

              Tiles框架是Struts的一個插件。我們可以使用Tiles框架來進行頁面布局設計。Tiles框架提供了一種模板機制,它可以將網頁內容和布局分離,并允許先創建模板,然后在頁面中再插入具體的內容。

          一、安裝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類只需要設置一個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程序的過程中,很多頁面會出現同樣的內容,如所有的頁面都使用同樣的的頁頭和頁尾。在JSP標簽庫中提供了一個include標簽可以將其他的頁面包含到當前的頁面中,如我們可以使用如下的代碼包含頁頭和頁尾。

           

           

             
            
          <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標簽都可以很好地解決代碼重用問題,但是并不能完全避免代碼重復的問題。如很多使用include或insert標簽的頁面也擁有很多類似或相同的代碼。如使用css布局、用table、div等HTML元素進行位置控制等。如果想避免這些代碼的重復。光使用include或insert標簽是無法做到的。而要想做到這一點,就要使用下一篇文章中介紹的Tiles模板。

          下一篇:Struts1.x系列教程(23):使用Tiles模板進行布局

           





          Android開發完全講義(第2版)(本書版權已輸出到臺灣)

          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 銀河使者 閱讀(3066) 評論(0)  編輯  收藏 所屬分類: javaweb 原創struts1.x

          主站蜘蛛池模板: 惠州市| 吴堡县| 财经| 漳州市| 凤城市| 确山县| 资溪县| 四会市| 左云县| 濮阳市| 荥经县| 赣州市| 扶绥县| 青河县| 灵寿县| 平泉县| 衡水市| 麻阳| 恭城| 桃园市| 宁晋县| 乌兰浩特市| 兴隆县| 巩留县| 中江县| 清原| 崇左市| 上饶县| 青海省| 东明县| 温宿县| 梁山县| 太原市| 获嘉县| 连南| 洮南市| 竹溪县| 工布江达县| 封丘县| 安阳市| 若尔盖县|