自定义标签

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

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)带属性的标签

你可能感兴趣的:(自定义标签)