简单使用taglib 自定义标签
程序员文章站
2022-06-08 14:09:03
...
自定义标签的步骤:
1、自定义类继承javax.servlet.jsp.tagext.*下提供的标签类,如:TagSupport
2、创建*.tld文件,配置标签库信息,以及标签与实现类的映射。
3、在JSP中引入自定义标签
标签类TagSupport:
TagSupport类是实现Tag接口的一个模板类。它实现了Tag接口的大部分方法,用户只需要实现doStartTag()和doEndTag()方法。
doStartTag():执行当前标签实例的开始标签。(标签开始时调用)
doEndTag():执行当前标签实例的结束标签。在doStartTag()执行后调用(结束调用)
书写taglib实例:
1、新建类TestTaglib继承TagSupport
public class TestTaglib extends TagSupport{
private static final long serialVersionUID = 1L;
@Override
public int doStartTag() throws JspException {
return SKIP_BODY;
}
@Override
public int doEndTag() throws JspException {
JspWriter out = pageContext.getOut();
try {
out.println("bbbbbb");
} catch(IOException e) {
e.printStackTrace();
}
return EVAL_PAGE;
}
@Override
public void release() {
super.release();
}
}
2、在WEB-INF下创建*.tld文件,(block.tld)
<?xml version="1.0" encoding="UTF-8"?>
<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">
<tlib-version>1.0</tlib-version>
<jsp-version>1.1</jsp-version>
<short-name>block</short-name>
<tag>
<name>test</name>
<tag-class>com.lsl.taglib.TestTaglib</tag-class>
<body-content>empty</body-content>
<!-- 标签属性 -->
<attribute>
<name>formatKey</name>
<!-- 是否必填 -->
<required>false</required>
<!-- 可否动态赋值 -->
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
</taglib>
<tag>
name:标签名
tag-class:自定义标签类全路径
body-content:标签内容---1、empty:为空------2、JSP:可填内容(<test>内容</test>)
</tag>
3、在JSP中引用
<%@ taglib uri="/WEB-INF/block.tld" prefix="block"%>
uri:tld文件路径
prefix:自定义前缀名
4、使用
引用后即可在JSP页面中使用自定义标签:
<block:test formatKey=""/>
test:tld文件中定义的标签名
formatKey:tld文件中定义的标签属性