1. 要開發一個自定義行為,需要使用一系列的類和接口,這些類和接口在JSP1.1規范中被稱為標記擴展機制(tag extension mechanism)。實現標記處理程序所需要的所有接口和類都是在javax.servlet.jsp.tagext包中定義的。兩個主要的接口分別是Tag和BodyTag。為了使開發標記處理程序更加容易,API定義了兩個起支持作用的類:TagSupport和BodyTagSupport。這兩個類分別為上面的兩個接口提供了默認的實現。
2. 標記庫是一個自定義行為的集合。在標記庫中除了標記處理程序的類文件以外,標記庫裡還必須包括一個tld文件。這是一個XML文件,它把所有的自定義行為的名稱映射到相應的標記處理程序類,而且對每一個自定義行為所支持的所有屬性進行了描述。類文件和tld可以被打包到一個JAR文件中以方便安裝。
3. 開發,配置和使用一個簡單的自定義行為通常需要做這幾部分工作。
(1) 實現一個標記處理程序類。對這個類進行編譯,然後把生成的類文件放到應用程序的WEB-INF/classes目錄下。
(2) 創建TLD文件。看下面這個簡單的實例。
<?xml version=”1.0” encoding=”ISO-8859-1” ?>
<!DOCTYPE taglib
PUBLIC “-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN”
http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd>
<taglib>
<tlibversion>1.0</tlibversion>
<jspversion>1.1</jspversion>
<shortname>test</shortname>
<tag>
<name>hello</name>
<tagclass>com.mycompany.HelloTag</tagclass>
<bodycontent>empty</bodycontent>
<attribute>
<name>name</name>
</attribute>
</tag>
</taglib>
把這個文件取名為*.tld,並把它放在應用程序的WEB-INF/tlds目錄下。
(3) 現在你可以這樣在JSP頁面中使用自定義行為。
<%@ taglib uri=”/WEB-INF/tlds/mylib.tld” prefix=”test” %>
<html>
<body bgcolor=”white”>
<test:hello name=”maojb”/>
</body>
</html>
當這個頁面被請求時,JSP容器就使用這個TLD來發現與自定義行為相對應的類。然後它將調用所有相應的方法,將相應的文本加入到應答中去。以上就是在最簡單的情況下我們要做的所有事情。