建立web项目
一、.java
package com.li.tag;
import java.io.IOException;
import java.io.StringWriter;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.SimpleTagSupport;
public class HelloTag extends SimpleTagSupport {
StringWriter sw = new StringWriter();
@Override
public void doTag() throws JspException, IOException {
// 创建Hello标签
JspWriter out = getJspContext().getOut();
out.println("eg:Hello Custom Tag!");
// 访问标签体
getJspBody().invoke(sw);
getJspContext().getOut().println(sw.toString());
}
}
二、.tld(新建方法自行查看:tld新建)
<?xml version="1.0" encoding="UTF-8"?>
<j2ee:taglib version="2.0" xmlns:j2ee="http://java.sun.com/xml/ns/j2ee"
xmlns:xml="http://www.w3.org/XML/1998/namespace" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://xmlns.jcp.org/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd ">
<j2ee:tlib-version>0.0</j2ee:tlib-version>
<j2ee:short-name>NMTOKEN</j2ee:short-name>
<!-- 1. 访问标签 body-content:empty -->
<!-- <tlib-version>1.0</tlib-version>
<jsp-version>2.0</jsp-version>
<short-name>Example TLD</short-name>
<tag>
<name>Hello</name>
<tag-class>com.li.tag.HelloTag</tag-class>
<body-content>empty</body-content>
</tag> -->
<!--2. 访问标标签体 body-content:scriptless(访问标签体同时可访问标签) -->
<tlib-version>1.0</tlib-version>
<jsp-version>2.0</jsp-version>
<short-name>Example TLD with Body</short-name>
<tag>
<name>Hello</name>
<tag-class>com.li.tag.HelloTag</tag-class>
<body-content>scriptless</body-content>
</tag>
</j2ee:taglib>
三、页面展示:.jsp
<%@ page language="java" isELIgnored="false" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="ex" uri="WEB-INF/helloTag.tld"%>
<!DOCTYPE html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<style type="text/css">
.aaaa{width:200px; height: 100px}
</style>
</head>
<body>
<!--1. 访问标签 -->
<ex:Hello/>
<!--2. 访问标签及标签体 -->
<ex:Hello>
eg:I am fine, thank you.
</ex:Hello>
</body>
</html>