的理解和使用

本文出自:http://www.tuicool.com/articles/ERFZvyy


在傳統 JSP 中,想要實現頁面佈局管理比較麻煩,爲了解決在 JSP 中佈局的問題,出現了很多開源軟件,比如 Apache Tiles 和 SiteMesh 就是其中比較優秀的。但是使用開源軟件實現佈局或多或少會產生一些性能問題,有沒有辦法在不依賴第三方開源軟件的情況下,使用 JSP 本身來實現頁面佈局呢? 
JSP 2.0 引入了 Fragment 技術,使用 Fragment 技術可以在 JSP 中實現類似 Tiles 和 SiteMesh 的頁面佈局管理。 
下面的例子說明了如何使用 Fragment 實現頁面佈局。 
1、首先在 WEB-INF/tags 文件夾中創建 template.tag 文件:

[html] view plain copy
  1. <%@tag description="template 1" pageEncoding="UTF-8"%>  
  2. <%@attribute name="header" fragment="true" %>  
  3. <%@attribute name="footer" fragment="true" %>  
  4. <!DOCTYPE html>  
  5. <html>  
  6.   <head>  
  7.     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
  8.   </head>  
  9.   
  10.   <body>  
  11.     <jsp:invoke fragment="header"/>  
  12.     <jsp:doBody/>  
  13.     <jsp:invoke fragment="footer"/>  
  14.   </body>  
  15. </html>  
在 tag 文件頭部申明瞭兩個 attribute 分別是 header 和 footer。在 <body> 標籤中調用了這兩個 attribute 所對應的 fragment。jsp:invoke 和 jsp:doBody 中的具體內容會被 jsp 中的內容替換。現在編寫 index.jsp。

2、創建 index.jsp 文件

[html] view plain copy
  1. <%@page contentType="text/html" pageEncoding="UTF-8"%>  
  2. <%@ taglib prefix="t" tagdir="/WEB-INF/tags/"%>  
  3. http://write.blog.csdn.net/postedit  
  4. <t:template>  
  5.   <jsp:attribute name="header">  
  6.     這裏的內容顯示在頭部。  
  7.   </jsp:attribute>  
  8.   <jsp:attribute name="footer">  
  9.     這裏的內容顯示在尾部。  
  10.   </jsp:attribute>  
  11.   <jsp:body>  
  12.     這裏顯示正文內容:Hello World!  
  13.   </jsp:body>  
  14. </t:template>  
jsp:attribute 標籤中的內容將會替換 template.tag 中 jsp:invoke 的內容,name 屬性對應 fragment 屬性。 
如果訪問 index.jsp 頁面,可以看到顯示的內容會按照 template.tag 中設計的樣式來進行佈局。
發佈了124 篇原創文章 · 獲贊 32 · 訪問量 67萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章