我以获取当前时间的标签为例,开发一个自定义的标签bin:currentTime。操作步骤如下:
一、首先要定义一个标签处理类。
package org.binbin.tag;
import java.io.IOException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.TagSupport;
/**
* 自定义标签
* @author binbin(cn.binbin@qq.com)
* @date 2013-3-28
*/
public class TimeTag extends TagSupport
{
private static final long serialVersionUID = 6918846280074418825L;
@Override
public int doStartTag() throws JspException
{
JspWriter out = this.pageContext.getOut();
//定义时间输出格式
DateFormat df = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
//获取当前时间的指定格式字符串
String str = df.format(new Date());
try
{
//输出当前时间字符串到页面
out.print(str);
} catch (IOException e)
{
//如果出现异常,当前程序无法处理,所以重新抛出一个运行时异常
throw new RuntimeException(e);
}
return super.doStartTag();
}
}
二、然后在WEB-INF目录下添加一个标签库定义文件bin.tld
<?xml version="1.0" encoding="UTF-8" ?>
<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
version="2.0">
<tlib-version>1.0</tlib-version>
<short-name>bin</short-name>
<uri>/bin-tags</uri>
<tag>
<name>currentTime</name>
<tag-class>org.binbin.tag.TimeTag</tag-class>
<body-content>empty</body-content>
</tag>
</taglib>
三、在jsp页面中使用该标签
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!-- 需要先导入相应标签库 -->
<%@ taglib uri="/bin-tags" prefix="bin"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP '1.jsp' starting page</title>
</head>
<body>
系统当前时间:<bin:currentTime/>
</body>
</html>
四、运行效果
以上过程即自定义标签开发的一般流程。仅供参考~
斌斌 (给我写信) 原创博文(http://blog.csdn.net/binbinxyz),转载请注明出处!
自定义标签扩展功能:
控制JSP页面某一部分内容是否执行;
控制整个JSP页面是否执行;
控制JSP页面内容重复执行;
修改JSP页面内容输出。