Jsp---自定义标签

1、先定义一个实现标签功能的类(MyTagClass.java)

public class MyTagClass extends TagSupport {

@Override//重写doStartTag()方法

public int doStartTag() {
HttpServletRequest request;// 是TagSupport类中定义的一个属性,它是javax.servlet.jsp.PageContext的对象
request = (HttpServletRequest) pageContext.getRequest();
SimpleDateFormat formater = new SimpleDateFormat("yyyy-MM-dd");
String strDate = formater.format(new Date());
JspWriter out = pageContext.getOut();
try {
out.print(strDate);
} catch (Exception e) {
e.printStackTrace();
}
return SKIP_BODY;// doStartTag() 方法返回 SKIP_BODY 。当然其原因是我们的简单日期标记没有正文。

}

}

2、新建一个标签库定义文件(MyTagLib.tld)

<taglib>
<tlib-version>1.0</tlib-version>
<jsp-version>1.2</jsp-version>
<short-name>my</short-name>
<tag>
<name>displayDate</name>//标签名,自定义,映射到一个Class
<tag-class>day01.MyTagClass</tag-class>
<body-content>empty</body-content>
</tag>
</taglib>

3、在web.xml文件中添加节点

<jsp-config>
<taglib>
<taglib-uri>myTagLib</taglib-uri>//标签库文件的标识,映射到标签库文件
<taglib-location>/WEB-INF/MyTagLib.tld</taglib-location>//标签库文件的实际地址
</taglib>
</jsp-config>

4、在jsp文件中添加taglib指令并在body中添加自定义标签

<%@ taglib uri="myTagLib" prefix="cc" %>//uri为标签库文件的标识,prefix为标签的前缀

<body>
 <cc:displayDate/>//从myTagLib所指定的标签库中找displayDate标签,再找到该标签名所对应的类并执行doStartTag()方法。
</body>

更多详情请参考:http://blog.csdn.net/zyujie/article/details/8735730

原文地址:https://www.cnblogs.com/beast-king/p/3928224.html