【IT168 技术文档】
编写一个Tag涉及三个步骤,
(1)编写JSP
(2)编写Tag的java程序
(3)编写tag库的描述文件tld(实际是一个XML文件)
这三个步骤之间没有顺序约束,下面是一个简单的例子:
1 编写HelloTag.jsp
<%@page contentType="text/html"%> <html> <head><title>Hello Tags Page</title></head> <body> <%@ taglib uri="/WEB-INF/classes/tags/helloTag.tld" prefix="hello" %> <hello:helloTag /> </body> </html>
2 编写tag
HelloTag.java
package tags; //注意:必须放在一个包中 import java.io.*; import javax.servlet.jsp.*; import javax.servlet.jsp.tagext.*; public class HelloTag extends TagSupport { public int doStartTag() { try { //使用JspWriter获得JSP的输出对象 JspWriter jspWriterOutput = pageContext.getOut(); jspWriterOutput.print("Hello Tag!"); } catch (IOException ioEx) { System .out.println("IOException in HelloTag " + ioEx); } return (SKIP_BODY); } }
3 编写helloTag.tld
这是Tag库的描述部分:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN" "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd"> <taglib> <tlib-version>1.0</tlib-version> <jsp-version>1.2</jsp-version> <shorttag -name>helloTag</short -name> <uri>/WEB-INFtagshelloTag</uri> <display-name>helloTag</display-name> <small-icon></small-icon> <large-icon></large-icon> <description>simple hello tags tag </description> <tag> <name>helloTag</name> <tag-class >tags.HelloTag</tag-class > <body-content>empty</body-content> <small-icon></small-icon> <large-icon></large-icon> <description></description> <example></example> </tag> </taglib>
4 注意:
通常手工编写XML文件,但是Sun的教程建议使用IDE工具编写自定义tag,比如NetBeans
一般,直接把tld文件放到WEB-INF目录中。