自定義標簽體系結構介紹
標簽處理程序
在創建自定義標簽之前,需要創建一個 標簽處理程序。標簽處理程序是一個執行自定義標簽操作的 Java 對象。在使用自定義標簽時,要導入一個 標簽庫 —— 即一組標簽/標簽處理程序對。通過在 Web 部署描述符中聲明庫導入它,然后用指令 taglib 將它導入 JSP 頁。
如果 JSP 容器在轉換時遇到了自定義標簽,那么它就檢查 標簽庫描述符(tag library descriptor) (TLD) 文件以查詢相應的標簽處理程序。TLD 文件對于自定義標簽處理程序,就像 Web 部署描述符對于 servlet 一樣。
在運行時,JSP 頁生成的 servlet 得到對應于這一頁面所使用的標簽的標簽處理程序的一個實例。生成的 servlet 用傳遞給它的屬性初始化標簽處理程序。
標簽處理程序實現了 生存周期 方法。生成的 servlet 用這些方法通知標簽處理程序應當啟動、停止或者重復自定義標簽操作。生成的 servlet 調用這些生存周期方法執行標簽的功能。
標簽的類型
可以定義兩種類型的標簽:
javax.servlet.jsp.tagext.Tag
javax.servlet.jsp.tagext.BodyTag
對 正文 進行操作 —— 即對在開始和結束標簽之間的內容進行操作的 —— 標簽必須實現 BodyTag 接口。在這個教程中,我們將稱這些標簽為 正文標簽。我們將不對其正文操作的標簽稱為 簡單標簽。簡單標簽可以實現 Tag 接口,盡管不要求它們這樣做。要記住不對其正文操作的標簽仍然 有 正文,只不過,它的標簽處理程序不能讀取這個正文。