jsp2的自定义标签

MyTag.java

package sadhu;
import javax.servlet.jsp.tagext.SimpleTagSupport;
import java.io.IOException;
import javax.servlet.jsp.JspException;

/*
	自定义标签处理类
*/
public class MyTag extends SimpleTagSupport
{
	private String id;
	private String name;

	public void setId(String id)
	{
		this.id = id;
	}
	public String getId()
	{
		return this.id;
	}

	public void setName(String name)
	{
		this.name = name;
	}
	public String getName()
	{
		return this.name;
	}

	public void doTag()throws JspException,IOException
	{
		getJspContext().getOut().write(new java.util.Date()+""+id+" --> "+name);
	}
}

如果想自己写一个处理标签的类,那么就要继承SimpleTagSupport和实现doTag()方法,doTag方法是一个输出方法。如果标签处理类中有属性,属性首字母小写,并提供getter和setter方法。然后通过javac编译放入WEB-INF\classes文件夹下面。自定义的标签处理类不要放在默认包中。

jsp2-taglib.tld

<?xml version="1.0" encoding="UTF8" ?>
<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">
    <!-- 标签描述 -->
    <description>自定义标签库</description>
    <!-- 标签版本 -->
    <tlib-version>1.0</tlib-version>
    <!-- 标签短名字 -->
    <short-name>myTaglib</short-name>
    <!-- 标签库的唯一标识 -->
    <uri>http://www.sadhu.com/jsp2-taglib</uri>
    <tag>
	<!-- 标签名字 -->
	<name>myTag</name>
	<!-- 处理类 -->
	<tag-class>sadhu.MyTag</tag-class>
	<!-- 标签的内容体 -->
	<body-content>empty</body-content>
	<!-- 配置标签属性 -->
	<attribute>
		<name>id</name>
		<required>true</required>
		<fragment>true</fragment>
	</attribute>
	<attribute>
		<name>name</name>
		<required>true</required>
		<fragment>true</fragment>
	</attribute>
    </tag>
</taglib>

标签库文件,一个标签库文件可以包含多个标签,标签库文件放在WEB-INF文件夹下或者子文件夹下。定义后重启tomcat

myTagPage.jsp

<%@ page contentType="text/html;charset=GBK" language="java" %>
<%@ taglib uri="http://www.sadhu.com/jsp2-taglib" prefix="mytag" %>
<html>
<head>
</head>
<body>
<mytag:myTag id="jiasd" name="789" />
</body>
<html>

首先导入标签库,然后再使用。

你可能感兴趣的:(jsp2的自定义标签)