在这个示例中,我们将创建一个打印当前日期和时间的自定义标签。我们在标签开始时执行操作。

创建任何自定义标签,我们需要遵循以下步骤:

  1. 创建标签处理类并在标签的开始或结束时执行操作。
  2. 创建标签库描述符(TLD)文件并定义标签。
  3. 创建使用TLD文件中定义的自定义标签的JSP文件

理解JSP中自定义标签的流程

4-1.png

1) 创建标签处理类

为了创建标签处理器,我们继承了TagSupport类并重写了其方法doStartTag()。要在jsp中写入数据,我们需要使用JspWriter类

PageContext类提供了getOut()方法,该方法返回JspWriter类的实例。TagSupport类默认提供pageContext的实例。

文件:MyTagHandler.java

package cn.javatiku.sonoo;  
import java.util.Calendar;  
import javax.servlet.jsp.JspException;  
import javax.servlet.jsp.JspWriter;  
import javax.servlet.jsp.tagext.TagSupport;  
public class MyTagHandler extends TagSupport{  
  
public int doStartTag() throws JspException {  
    JspWriter out=pageContext.getOut();//returns the instance of JspWriter  
    try{  
     out.print(Calendar.getInstance().getTime());//printing date and time using JspWriter  
    }catch(Exception e){System.out.println(e);}  
    return SKIP_BODY;//will not evaluate the body content of the tag  
}  
} 

2) 创建TLD文件

标签库描述符(TLD)文件包含标签和标签处理类的信息。它必须包含在WEB-INF目录内。

文件:mytags.tld

<?xml version="1.0" encoding="ISO-8859-1" ?>  
<!DOCTYPE taglib  
        PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"  
    "http://java.sun.com/j2ee/dtd/web-jsptaglibrary_1_2.dtd">  
  
<taglib>  
  
  <tlib-version>1.0</tlib-version>  
  <jsp-version>1.2</jsp-version>  
  <short-name>simple</short-name>  
  <uri>http://tomcat.apache.org/example-taglib</uri>  
  
<tag>  
<name>today</name>  
<tag-class>cn.javatiku.sonoo.MyTagHandler</tag-class>  
</tag>  
</taglib>  

3) 创建JSP文件

让我们在jsp文件中使用这个标签。这里,我们直接指定了tld文件的路径。但是建议使用uri名称而不是tld文件的完整路径。稍后我们将学习关于uri的知识。

它使用taglib指令来使用tld文件中定义的标签。

文件:index.jsp

<%@ taglib uri="WEB-INF/mytags.tld" prefix="m" %>  
Current Date and Time is: <m:today/>  

输出

4-2.jpg

标签: JSP, JSP教程, JSP技术, JSP快速入门, JSP简单用法, JSP编程, JSP下载, JSP基本语法, JSP安装教程, JSP库, JSP指南, JSP基础教程, JSP初级教程, JSP进阶教程