自定义标签是用户定义的JSP语言元素。当JSP页面包含一个自定义标签时将被转化为servlet,标签转化为对被 称为tag handler的对象的操作,即当servlet执行时Web container调用那些操作。
假设我们想自定义一个叫做hello的标签:
<ex:Hello />
新建一个Java类:
package action;
import javax.servlet.jsp.tagext.*;
import javax.servlet.jsp.*;
import java.io.*;
public class HelloTag extends SimpleTagSupport {
public void doTag() throws JspException, IOException {
JspWriter out = getJspContext().getOut();
out.println("Hello Custom Tag!");
}
}
在jsp中使用这个标签页:
<%@ taglib prefix="ex" uri="WEB-INF/custom.tld"%>
<html>
<head>
<title>A sample custom tag</title>
</head>
<body>
<ex:Hello/>
</body>
</html>
新建一个custom.tld, 内容如下:
<?xml version="1.0" encoding="UTF-8" ?>
<taglib>
<tlib-version>1.0</tlib-version>
<jsp-version>2.0</jsp-version>
<short-name>Example TLD</short-name>
<uri>http://www.sap.cn/tag1.0</uri>
<tag>
<name>Hello</name>
<tag-class>action.HelloTag</tag-class>
<body-content>empty</body-content>
</tag>
</taglib>
最后运行时的效果:
要获取更多Jerry的原创文章,请关注公众号"汪子熙":