JSP自定义标签demo

test-tags.tld(标签描述文件)html

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN" "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
<taglib>
	<tlib-version>1.0</tlib-version>
	<jsp-version>1.2</jsp-version>
	<short-name>testtld</short-name>
	<uri>http://www.300.cn/jsp/jstl/testtld</uri>
	<tag>
		<name>out</name>
		<tag-class>cn.ce.test.TestTag</tag-class>
		<body-content>empty</body-content>
		<attribute>
			<name>url</name>
			<required>true</required>
			<rtexprvalue>true</rtexprvalue>
		</attribute>
	</tag>
</taglib>

标签out引用类

package cn.ce.test;

import java.io.IOException;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.TagSupport;

public class TestTag extends TagSupport{
    
    private static final long serialVersionUID = 1L;
    
    private String url;

    public String getUrl() {
        return url;
    }

    public void setUrl(String url) {
        this.url = url;
    }
    
    public int doStartTag() throws JspException {
        StringBuilder sb = new StringBuilder();
        sb.append("<span>");
        sb.append(getUrl());
        sb.append("</span>");
        JspWriter out = pageContext.getOut();
        try {
            out.write(sb.toString());
        } catch (IOException e) {
            e.printStackTrace();
        }
        return EVAL_BODY_INCLUDE;
    }
    
}

web.xml中添加标签配置

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" 
	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-app_2_4.xsd">
  <display-name></display-name>	
  
  <jsp-config>
  	<taglib>
  		<taglib-location>test-tags.tld</taglib-location>
  		<taglib-uri>http://www.300.cn/jsp/jstl/testtld</taglib-uri>
  	</taglib>
  </jsp-config>
  
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>


jsp页面中使用

<%@ taglib prefix="t"	uri="http://www.300.cn/jsp/jstl/testtld" %>
<t:out url="aaaaa11112222"/>