首页常见问题正文

自定义标签之JspFragment类

更新时间:2024-01-15 来源:黑马程序员 浏览量:

IT培训班

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

  JSP容器在处理简单标签的标签体时,会把标签体内容用一个JspFragment对象表示,并调用标签处理器对象的setJspBody()方法将JspFragment对象传递给标签处理器对象,标签开发者可以根据需要调用JspFragment对象的方法来决定是否输出标签体、或者循环多次输出标签体等。在JspFragment类中定义了两个方法,方法的说明如表9-5所示。

  表9-5 JspFragment类的方法

1705286970526_JspFragment类的方法.jpg

  在表9-5中,JspFragment的invoke()方法是简单标签开发中最重要的一个方法,它用于控制如何执行标签体的内容。如果在doTag()方法中调用一次invoke()方法,就会执行一次标签体,多次调用invoke()方法就会多次执行标签体。与BodyContent对象不同的是,在JspFragment中没有提供容器缓存标签体的内容。与BodyContent对象不同的是,在JspFragment中没有提供容器缓存标签体的内容,也没有定义getString()之类的方法取出标签体内容,如果想对标签体内容进行修改,只需在调用invoke()方法时传入一个可取出结果数据的输出流对象,例如StringWriter、CharArrayWriter,让标签体的执行结果输出到该输出流对象中,然后取出数据进行修改后再输出到浏览器即可。

  本文版权归黑马程序员Java培训学院所有,欢迎转载,转载请注明作者出处。谢谢!

  作者:黑马程序员Java培训学院

  首发:https://java.itheima.com

分享到:
在线咨询 我要报名
和我们在线交谈!