开发自定义标签的步骤
程序员文章站
2022-06-08 22:23:08
...
开发步骤
- 编写相应的标签处理类,可继承simpleTagSupport类或实现simpleTag接口(simpleTagSupport也是simpleTag的实现类),相比而言继承前者更加方便,前者对tomcat中的参数都保存起来并提供Get方法。
import java.io.IOException;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.SimpleTagSupport;
/****
* 继承simpleTagSupport类的标签处理类
* @author Administrator
*它已经把tomcat传递的参数都保存起来了 并且提供了getXX()使用起来更加简单
*/
public class CutomTag1 extends SimpleTagSupport{
@Override
public void doTag() throws JspException, IOException {
getJspContext().getOut().write("**************<br/>*******");
}
}
或者是实现simpleTag接口
package com.mydefault.jsp;
import java.io.IOException;
import javax.servlet.jsp.JspContext;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.JspFragment;
import javax.servlet.jsp.tagext.JspTag;
import javax.servlet.jsp.tagext.SimpleTag;
/****
* 实现simpleTag接口的自定义标签处理类
* @author Administrator
*
*/
public class CutomTag1 implements SimpleTag{
private JspContext context;
private JspFragment jspTag;
/**
* 每次执行标签的时候都会执行此方法 由tomcat自动去调用 (生命周期方法)
* 在调用次方法之前所有的setXX()方法都已经被调用,所以此方法能访问tomcat中传递过来的对象
*/
public void doTag() throws JspException, IOException {
context.getOut().write("hello custom tag !");
}
public JspTag getParent() {
// TODO Auto-generated method stub
return null;
}
public void setJspBody(JspFragment arg0) {
// TODO Auto-generated method stub
this.jspTag = arg0;
}
public void setJspContext(JspContext arg0) {
// TODO Auto-generated method stub
this.context = arg0;
}
public void setParent(JspTag arg0) {
// TODO Auto-generated method stub
}
}
-
*编写标签的描述文件 .tld
tld文件一般都放到WEB-INF之下,这样保证客户端访问不到!**
<?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.1</tlib-version>
<short-name>x</short-name>
<uri>www.test.com</uri>
<tag>
<name>mytag</name> 指定当前标签的名称
<tag-class>xx.xx.tag.MyTag1</tag-class> 指定当前标签的标签处理类!
<body-content>empty</body-content> 指定标签体的类型,我们这里使用的是空标签!
</tag>
</taglib>
页面中指定tld文件位置
<%@ taglib prefix=”x” uri=”www.test.com” %>在jsp中使用已经定义好的标签
<body>
This is my JSP page. <br>
<x:mytag/>
</body>
下一篇: Vue实现自定义下拉菜单功能