程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> JSP編程 >> 關於JSP >> 利用JSP 2提供的SimpleTagSupport開發自定義標簽

利用JSP 2提供的SimpleTagSupport開發自定義標簽

編輯:關於JSP

自定義標簽庫並不是 JSP 2 才出現的,JSP 1.1 版中已經增加了自定義標簽 庫規范,自定義標簽庫是一種非常優秀的表現層組件技術。通過使用自定義標簽 庫,可以在簡單的標簽中封裝復雜的功能。

為什麼要使用自定義標簽呢?主要是為了取代丑陋的 JSP 腳本。在 HTML 頁 面中插入 JSP 腳本有如下幾個壞處:

JSP 腳本非常丑陋,難以閱讀。

JSP 腳本和 HTML 代碼混雜,維護成本高。

HTML 頁面中嵌入 JSP 腳本,導致美工人員難以參與開發。

出於以上三點的考慮,我們需要一種可在頁面中使用的標簽,這種標簽具有和 HTML 標簽類似的語法,但由可以完成 JSP 腳本的功能——這種標簽就是 JSP 自 定義標簽。

在 JSP1.1 規范中開發自定義標簽庫比較復雜,JSP 2 規范簡化了標簽庫的開 發,在 JSP 2 中開發標簽庫只需如下幾個步驟:

開發自定義標簽處理類;

建立一個 *.tld 文件,每個 *.tld 文件對應一個標簽庫,每個標簽庫對應多 個標簽;

在 JSP 文件中使用自定義標簽。

開發自定義標簽類

標簽庫和實際開發

標簽庫是非常重要的技術,通常來說,初學者、普通開發人員自己開發標簽庫 的機會很少,但如果希望成為高級程序員,或者希望開發通用框架,就需要大量 開發自定義標簽了。所有的 MVC 框架,如 Struts 2、SpringMVC、JSF 等都提供 了豐富的自定義標簽。

當我們在 JSP 頁面使用一個簡單的標簽時,底層實際上由標簽處理類提供支 持,從而可以使用簡單的標簽來封裝復雜的功能,從而使團隊更好地協作開發( 能讓美工人員更好地參與 JSP 頁面的開發)。

早期 JSP 自定義標簽類開發過程略微復雜一些,但 JSP 2 已經簡化了這個過 程,它只要自定義標簽類都必須繼承一個父類: javax.servlet.jsp.tagext.SimpleTagSupport,除此之外,JSP 自定義標簽類還 有如下要求。

如果標簽類包含屬性,每個屬性都有對應的 getter 和 setter 方法。

重寫 doTag() 方法,這個方法負責生成頁面內容。

下面開發一個最簡單的自定義標簽,該標簽負責在頁面上輸出 HelloWorld。

// 標簽處理類,繼承 SimpleTagSupport 父類
public class HelloWorldTag extends SimpleTagSupport
{
   // 重寫 doTag 方法,該方法在標簽結束生成頁面內容
   public void doTag()throws JspException,
     IOException
   {
     // 獲取頁面輸出流,並輸出字符串
     getJspContext().getOut().write("Hello World");
   }
}

上面這個標簽處理類非常簡單,它繼承了 SimpleTagSupport 父類,並重寫 doTag() 方法,而 doTag() 方法則負責輸出頁面內容。該標簽沒有屬性,因此無 須提供 setter 和 getter 方法。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved