jsp2自定义标签开篇

在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>

 

posted @ 2017-06-08 18:03  我的名称很霸气  阅读(549)  评论(0编辑  收藏  举报