在此示例中, 我们将创建一个自定义标签来打印当前日期和时间。我们正在标记开头执行操作。
要创建任何自定义标签, 我们需要执行以下步骤:
- 创建Tag处理程序类, 并在标签的开头或结尾处执行操作。
- 创建标签库描述符(TLD)文件并定义标签
- 创建使用TLD文件中定义的Custom标记的JSP文件
了解JSP中的自定义标签流
1)创建标签处理程序类
要创建标签处理程序, 我们将继承TagSupport类并覆盖其方法doStartTag()。要为jsp写入数据, 我们需要使用JspWriter类。
PageContext类提供getOut()方法, 该方法返回JspWriter类的实例。 TagSupport类默认提供pageContext的实例。
package com.srcmini.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目录中。
<?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>com.srcmini.sonoo.MyTagHandler</tag-class>
</tag>
</taglib>
3)创建JSP文件
让我们在我们的jsp文件中使用标记。在这里, 我们直接指定tld文件的路径。但是建议使用uri名称代替tld文件的完整路径。稍后我们将了解uri。
它使用taglib指令来使用tld文件中定义的标签。
<%@ taglib uri="WEB-INF/mytags.tld" prefix="m" %>
Current Date and Time is: <m:today/>
评论前必须登录!
注册