1. 创建标签处理类(HelloTag.java):
package your_package_name;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.Tag;
import javax.servlet.jsp.tagext.TagSupport;
public class HelloTag extends TagSupport {
private String name;
// 设置属性值
public void setName(String name) {
this.name = name;
}
// 标签处理逻辑
public int doStartTag() throws JspException {
try {
// 获取JspWriter对象
JspWriter out = pageContext.getOut();
// 输出标签内容
out.println("Hello, " + name + "!");
} catch (Exception e) {
throw new JspException(e.getMessage());
}
// 标签处理完毕,SKIP_BODY表示不处理标签体
return Tag.SKIP_BODY;
}
}
2. 创建标签库描述文件(tld文件,HelloTag.tld):
<?xml version="1.0" encoding="UTF-8" ?>
<taglib xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd"
version="2.1">
<tlib-version>1.0</tlib-version>
<short-name>custom</short-name>
<uri>http://your_domain/custom-tags</uri>
<tag>
<name>hello</name>
<tag-class>your_package_name.HelloTag</tag-class>
<body-content>empty</body-content>
<attribute>
<name>name</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
</taglib>
注意替换your_package_name为你的Java包名,并将tld文件中的uri设置为你想要的命名空间。
3. 使用自定义标签的JSP页面代码(useHelloTag.jsp):
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://your_domain/custom-tags" prefix="custom" %>
<html>
<head>
<title>使用自定义标签</title>
</head>
<body>
<custom:hello name="World" />
</body>
</html>
在这个例子中,HelloTag是一个简单的自定义标签处理类,负责输出"Hello, "加上指定的名字。tld文件定义了自定义标签的属性和使用规则。JSP页面通过<%@ taglib %>标签引入自定义标签库,并使用<custom:hello>标签调用自定义标签。
这是一个简单的示例,实际中自定义标签可用于更复杂的逻辑和重用功能。要注意的是,自定义标签通常需要将标签处理类打包成JAR文件,并将JAR文件放在WEB-INF/lib目录下。
转载请注明出处:http://www.pingtaimeng.com/article/detail/13685/JSP