欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

开发自定义标签的步骤

程序员文章站 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>