深入理解BodyTagSupport,包括SKIP_PAGE, EVAL_PAGE

BodyTagSupport类的方法:
编写标签对应的实现类时,需要重载BodyTagSupport类几个方法:doStartTag(), setBodyContent(), doInitBody(), doAfterBody(), doEndTag();

他们执行顺序如下:
doStartTag()→doInitBody()→setBodyContent()→doAfterBody()→doEndTag()

doStartTag()方法可返回EVAL_BODY_INCLUDE或SKIP_BODY,
如果返回EVAL_BODY_INCLUDE则继续执行;
如果返回SKIP_BODY则接下来的doInitBody(),setBodyContent(), doAfterBody()三个方法不会被执行,
而直接执行doEndTag()方法。

setBodyContent()方法用于设置标签体内容,如果在此之前要作一些初始化工作,则在doInitBody()方法中完成。
标签体内容执行完后,会调用doAfterBody()方法,此方法可返回EVAL_BODY_TAGSKIP_BODY
EVAL_PAGESKIP_PAGE
如果返回EVAL_BODY_TAG则会再次设置标签体内容,直到返回SKIP_BODY;
如果返回EVAL_PAGE则标签体执行完后会继续执行JSP页面中接下来的部分;
如果返回SKIP_PAGE,则JSP页面的后续内容将不再执行。

标签中静态常量:

EVAL_BODY_INCLUDE:告诉服务器正文的内容,并把这些内容送入输出流
SKIP_BODY:告诉服务器不要处理正文内容
EVAL_PAGE:让服务器继续执行页面
SKIP_PAGE:让服务器不要处理剩余的页面
EVAL_BODY_AGAIN:让服务器继续处理正文内容,只有doAfterBody方法可以返回
EVAL_BODY_BUFFERED:BodyTag接口的字段,在doStartTag()返回
EVAL_BODY_INCLUDE、SKIP_BODY一般由doStartTag()返回,而EVAL_PAPGE、SKIP_PAGE由doEndTag()返回。

转载于:https://www.cnblogs.com/frankchia/p/7911020.html

深入理解BodyTagSupport,包括SKIP_PAGE, EVAL_PAGE等相关推荐

  1. 深入理解BodyTagSupport和TagSupport 包括SKIP_PAGE, EVAL_PAGE等

    博客分类: web 前端 标签库的接口和类的继承关系  答:表现形式一:     a. 接口的继承关系:        ☉ interface javax.servlet.jsp.tagext.Jsp ...

  2. 百度王海峰:多模态深度语义理解将让AI更深地理解真实世界

    7月4日召开的百度AI开发者大会(Baidu Create 2018)上,百度高级副总裁.AI技术平台体系(AIG)总负责人王海峰发布百度大脑3.0,并指出,百度大脑3.0的核心是"多模态深 ...

  3. 基于Spatial CNN的车道线检测和交通场景理解

    SCNN车道线检测--(SCNN)Spatial As Deep: Spatial CNN for Traffic Scene Understanding(论文解读) Spatial As Deep: ...

  4. 今晚直播 | 高效视频理解模型的设计及ICCV比赛冠军方案解读

    「PW Live」是 PaperWeekly 的学术直播间,旨在帮助更多的青年学者宣传其最新科研成果.我们一直认为,单向地输出知识并不是一个最好的方式,而有效地反馈和交流可能会让知识的传播更加有意义, ...

  5. 直播预告 | 高效视频理解模型的设计及ICCV比赛冠军方案解读

    「PW Live」是 PaperWeekly 的学术直播间,旨在帮助更多的青年学者宣传其最新科研成果.我们一直认为,单向地输出知识并不是一个最好的方式,而有效地反馈和交流可能会让知识的传播更加有意义, ...

  6. 百度AI开发者大会百度大脑论坛:详解“多模态深度语义理解”

    7月4日召开的百度AI开发者大会(Baidu Create 2018)上,百度高级副总裁.AI技术平台体系(AIG)总负责人王海峰发布百度大脑3.0,并指出,百度大脑3.0的核心是"多模态深 ...

  7. 软件工程(三)——敏捷开发和理解需求

    笔者正在学习<软件工程-实践者的研究方法>这本书,记录下一些读书笔记,共勉! 1.敏捷 市场条件变化十分迅速,客户和最终用户的需求在演变,从业者必须使软件工程工作保持敏捷,要限定过程应是灵 ...

  8. 资深大牛带你了解源码!带你轻松理解Android-Hook机制,已开源

    前言 我今年38岁,失业前是南方二线城市某知名互联网公司的部门技术主管,婚姻幸福,膝下有一儿一女,组成一个好字,房子车子:有一辆十几万的汽车,一套月供八千的房子,妻子全职在家带娃,家里的一切开销全部指 ...

  9. Altium Designer 10对集成库的理解

    前言 在初次学习Altium Designer 10(一下简称AD10)的时候,很多朋友新手估计也和我一样,在网上找到各种学习视频,找到之后 也是一通看,但是估计很多视频在都会提及到各种库,什么原理图 ...

最新文章

  1. tf.signal.stft() 短时傅里叶变换的示例
  2. 2021年春季学期-信号与系统-第五次作业参考答案-第十一移小题—MATLAB
  3. 隔空操作之隔空下象棋
  4. Log4j自定义Appender介绍
  5. JavaScript之三:jQuery插件开发(一)
  6. jmeter 线程执行顺序_Jmeter-线程组执行顺序控制
  7. [导入] 堆和栈的区别
  8. canal原理的一些学习-1(canal的一些原理性介绍)
  9. 定义入栈java_小师妹学JVM之:java的字节码byte code简介
  10. ArcGIS实验教程——实验三十二:ArcGIS水文分析(流向分析、计算水流长度、汇流分析、河网分析、流域分析)
  11. linux shell 引号 参数,shell(三)变量,基本语法,单双引号
  12. sql server 别名_SQL Server别名概述
  13. iOS底层 - 符号解析(dSYM 系统符号)Go语言版本
  14. 83-MongoDB介绍
  15. Rock Paper将为圣地亚哥教士棒球队开发AR游戏
  16. python监控端口_python监控设备端口示例
  17. android音频编辑之音频裁剪的示例代码
  18. C语言初阶-C语言中static的用法
  19. 人力资源管理案例-左右为难的经理
  20. 揭秘!用标准Go语言能写脚本吗?

热门文章

  1. anaconda要和python安装在一个目录下吗_Python开发环境配置,Anaconda的安装!
  2. 摄像头图像分析目标物体大小位置_对智能驾驶系统三种环境传感器布局的冗余关系分析...
  3. ieee802.11数据radiotap介绍
  4. 怎么找到python的文件_python – 如何找到文件所在的挂载点?
  5. 【java】调用System.gc()会发生什么?
  6. 【Flink】Flink 源码之ExecutionGraph
  7. 【kafka】kafka 控制台 消费 ip 却找 域名 报错 Can‘t resolve address UnresolvedAddressException
  8. 【ElasticSearch】Es 源码之 RerouteService 源码解读
  9. Spark报错: IOException: Bad connect ack with firstBadlink as xxx:500010
  10. 【Flink】Flink ClosureCleaner 闭包清除