您当前的位置: 首页 >  Java

彭世瑜

暂无认证

  • 5浏览

    0关注

    2791博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Java学习路线-55:自定义JSP标签

彭世瑜 发布时间:2020-06-21 18:28:36 ,浏览量:5

第 10 章 : 自定义标签 编写步骤:
  1. 标签处理类
  2. 编写 tld 文件
  3. taglib 导入 tld 文件
依赖

    javax.servlet
    javax.servlet-api
    4.0.1
    provided



    javax.servlet.jsp
    javax.servlet.jsp-api
    2.3.3
    provided

定义无内容标签
package com.pengshiyu.taglibs;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.SimpleTagSupport;
import java.io.IOException;

public class HelloTag extends SimpleTagSupport {
    @Override
    public void doTag() throws JspException, IOException {
        this.getJspContext().getOut().println("hello");
    }
}

声明




    1.0
    2.0
    Example TLD with Body

    
        Hello
        com.pengshiyu.taglibs.HelloTag
        empty
    

引入声明文件并使用标签






定义有内容标签
package com.pengshiyu.taglibs;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.SimpleTagSupport;
import java.io.IOException;

public class HelloTag extends SimpleTagSupport {
    @Override
    public void doTag() throws JspException, IOException {
        JspWriter out = this.getJspContext().getOut();
        out.write("******");
        this.getJspBody().invoke(out);
        out.write("******");
    }
}






你好

输出

****** 你好 ******
不再执行标签下面的内容
package com.pengshiyu.taglibs;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.SkipPageException;
import javax.servlet.jsp.tagext.SimpleTagSupport;
import java.io.IOException;

public class HelloTag extends SimpleTagSupport {
    @Override
    public void doTag() throws JspException, IOException {
        this.getJspContext().getOut().write("以下内容不显示");
        throw new SkipPageException();
    }
}

带有属性的标签

标签类

package com.pengshiyu.taglibs;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.SimpleTagSupport;
import java.io.IOException;

public class HelloTag extends SimpleTagSupport {


    private String name = "";

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public void doTag() throws JspException, IOException {
        this.getJspContext().getOut().write(this.name);

    }
}

tld 配置


    Hello
    com.pengshiyu.taglibs.HelloTag
    scriptless
    

        name

        true

        true
    

使用


关注
打赏
1665367115
查看更多评论
立即登录/注册

微信扫码登录

0.1923s