开发自定义标签的步骤

开发步骤

  • 编写相应的标签处理类,可继承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>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值