美文网首页
自定义标签

自定义标签

作者: 我是邱邱 | 来源:发表于2018-05-14 13:59 被阅读0次

    自定义标签处理器类的生命周期:

    SimpleTag接口:

    void setJspContext(JspContext pc)--设置pageContext对象,传入pageContext(一定调用)

    通过getJspCotext()方法得到pageContext对象

    void setParent(JspTag parent)--设置父标签对象,传入父标签对象,如果没有父标签,则不 调用此方法。通过getParent()方法得到父标签对象。

    void     setXXX(值)             --设置属性值。

    void setJspBody(JspFragment jspBody)--设置标签体内容。标签体内容封装到JspFragment对象 中,然后传入JspFragment对象。通过getJspBody()方法 得到标签体内容。如果没有标签体内容,则不会调 用此方法

    void doTag()--执行标签时调用的方法。(一定调用)

    第一个自定义开发类,

    1)编写一个普通的java类,继承SimpleTagSupport类,得到的类叫做标签处理器类。

    2)在web项目的WEB-INF目录下建立一个song.tld文件,这个tld文件叫做标签库的声明文件。(参考核心标签库的声明文件)

    3)在jsp页面头部导入自定义标签库

    4)在jsp中使用自定义标签库

    自定义标签的作用:

    1)控制标签体是否输出

    //控制标签体内容是否输出

    JspFragment contentFragment=this.getJspBody();

    /*JspWriter out=this.getJspContext().getOut();

    contentFragment.invoke(out);*/

    // contentFragment.invoke(null);

     2)控制标签余下内容是否输出(默认标签体内容输出)

    throw new SkipPageException();

    3)控制重复输出标签体内容:重复调用invoke(null)内容

    4)改变标签体内容

    StringWriter writer=new StringWriter();

    contentFragment.invoke(writer);

    String contentString=writer.toString();

    contentString=contentString.toLowerCase();

    this.getJspContext().getOut().write(contentString);

    5)带属性的标签

    相关文章

      网友评论

          本文标题:自定义标签

          本文链接:https://www.haomeiwen.com/subject/crcldftx.html