1、编写一个继承TagSupport的类,重写doStartTag()方法
package com.wlkj.common;
import java.io.IOException;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.TagSupport;
/**
* 黄宝康自定义标签
* @author 黄宝康
* 2019年7月25日 下午9:38:34
*/
public class HbkTag extends TagSupport {
/**
*
*/
private static final long serialVersionUID = 1L;
@Override
public int doStartTag() throws JspException {
String str = "huangbaokang,hello world";// 发挥你的想象,可以从数据库查询等
try {
pageContext.getOut().write(str);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return 0;
}
}
2、在工程的WEB-INF文件夹下新建一个tld文件,文件名随意,我这里叫mytag.tld,内容如下:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE taglib
PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN"
"http://java.sun.com/dtd/web-jsptaglibrary_1_1.dtd">
<taglib>
<tlibversion>1.0</tlibversion>
<jspversion>1.2</jspversion>
<shortname>hbk</shortname>
<uri>http://localhost/mytag</uri>
<tag>
<name>hbkTag</name><!-- 标签名字,页面引用之用 -->
<tagclass>com.wlkj.common.HbkTag</tagclass><!-- 指定标签处理的实现类 -->
<body-content>empty</body-content><!-- 标签内容为空 -->
</tag>
</taglib>
3、页面测试,index.jsp页面如下:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="hbk" uri="http://localhost/mytag" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>测试jsp自定义标签</title>
</head>
<body>
<hbk:hbkTag/>
</body>
</html>
启动该工程,访问该页面,显示了我们自定义jsp标签的内容
附工程架构图: