開發JSP自訂行為
來源:互聯網
上載者:User
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來發現與自訂行為相對應的類。然後它將調用所有相應的方法,將相應的文本加入到應答中去。以上就是在最簡單的情況下我們要做的所有事情。