1. 程式人生 > >jsp2自定義標簽開篇

jsp2自定義標簽開篇

oos .org emp context pub j2e sp2 hand ges

在JSP2中開發標簽庫需要以下幾個步驟:

1.開發自定義標簽處理類;

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

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

第一步驟:開發自定義標簽類。標簽類需要繼承javax.servlet.jsp.SimpleTagSupport;如果標簽類包含屬性,每個屬性都要有getter和setter方法;

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

比如以下代碼:

 1 package lee;
 2 import java.io.IOException;
 3 import javax.servlet.jsp.JspException;
4 import javax.servlet.jsp.tagext.SimpleTagSupport; 5 public class HelloTag extends SimpleTagSupport { 6 // 重寫doTag方法 7 @Override 8 public void doTag() throws JspException, IOException { 9 // 獲取頁面輸出流,並輸出字符串 10 getJspContext().getOut().write("hello Tag"+new java.util.Date());
11 } 12 }

第二步驟:簡歷TLD文件,可以直接復制tomcat的webapps\examples\WEB-INF\jsp2\下的jsp2-example-taglib.tld文件放到自己的WEB-INF目錄下。如圖

技術分享

然後重命名,修改內容,代碼如下:

 1 <?xml version="1.0" encoding="GBK" ?>
 2 <taglib xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 3     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
 4
version="2.0"> 5 <!-- 描述 --> 6 <description>A tag library exercising SimpleTag handlers.</description> 7 <!-- 版本 --> 8 <tlib-version>1.0</tlib-version> 9 <!-- 短名 --> 10 <short-name>mytag</short-name> 11 <!-- 指定標簽庫URI --> 12 <uri>http://tomcat.apache.org/mytag</uri> 13 <tag> 14 <description>Outputs Hello, World</description> 15 <!-- 標簽庫名字 --> 16 <name>helloWorld</name> 17 <!-- 標簽處理類 --> 18 <tag-class>lee.HelloTag</tag-class> 19 <!-- 標簽體內容 --> 20 <body-content>empty</body-content> 21 </tag> 22 </taglib>

第三步驟:使用自定義標簽,新建一個jsp文件,代碼如下:

 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <%@ taglib uri="http://tomcat.apache.org/mytag" prefix="mytag"%>
 4 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 5 <html>
 6 <head>
 7 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 8 <title>Insert title here</title>
 9 </head>
10 <body>
11     <mytag:helloWorld />
12 </body>
13 </html>

jsp2自定義標簽開篇