自定义标签2&简单标签

       由于传统标签使用三个标签接口来完成不同的功能,显得过于繁琐,不利于标签技术的推广,SUN公司为降低标签技术的学习难度,在JSP2.0中定义了一个更为简单、便于编写和调用的SimpleTag接口来实现标签的功能。实现SimpleTag接口的标签通常称为简单标签。简单标签共定义了5个方法:

setJspContext方法

setParent和getParent方法

setJspBody方法

doTag方法

SimpleTag方法介绍:

setJspContext方法:

      用于把JSP页面的pageContext对象传递给标签处理器对象;

setParent方法:

     用于把父标签处理器对象传递给当前标签处理器对象;

getParent方法:

      用于获得当前标签的父标签处理对象;

setJspBody方法:

     用于把代表标签体的JspFragment对象传递给标签处理器对象;

doTag方法:

     用于完成所有的标签逻辑,包括输出、迭代、修改标签体内容等。在doTage方法中可以抛出javax.servlet.jsp.SkipPageException异常,用于通知WEB容器不在执行JSP页面中位于结束标记后面的内容,这等效于在传统标签的doEndTag方法中返回Tag.SKIP_PAGE常量的情况。

JspFragment类:

     javax.servlet.jsp.tagext.JspFragment类是在JSP2.0中定义的,它的实力对象代表JSP页面中的一段符合JSP语法规范的JSP片段,这段JSP片段中不能包含JSP脚本元素。

     WEB容器在处理简单标签的标签体时,会把标签体内容用一个JspFragment对象表示,并调用标签处理器对象的setJspBody方法把JspFragment对象传递给标签处理器对象。JspFragment类中只定义了两个方法,如下所示:

getJspContext方法:

     用于返回代表调用页面的JspContext对象;

public abstract void invoke(java.io.Writer.out):

      用于执行JspFragment对象所代表的JSP代码片段;

      参数out用于指定将JspFragment对象的执行结果写入到哪个输出流对象中,如果传递给参数out的值为null,则将执行结果写入到JspContext.getOut()方法返回的输出流对象中。

 

 

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章