深入理解BodyTagSupport,包括SKIP_PAGE, EVAL_PAGE等
深入理解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_TAG, SKIP_BODY,
EVAL_PAGE或SKIP_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等相关推荐
- 深入理解BodyTagSupport和TagSupport 包括SKIP_PAGE, EVAL_PAGE等
博客分类: web 前端 标签库的接口和类的继承关系 答:表现形式一: a. 接口的继承关系: ☉ interface javax.servlet.jsp.tagext.Jsp ...
- 百度王海峰:多模态深度语义理解将让AI更深地理解真实世界
7月4日召开的百度AI开发者大会(Baidu Create 2018)上,百度高级副总裁.AI技术平台体系(AIG)总负责人王海峰发布百度大脑3.0,并指出,百度大脑3.0的核心是"多模态深 ...
- 基于Spatial CNN的车道线检测和交通场景理解
SCNN车道线检测--(SCNN)Spatial As Deep: Spatial CNN for Traffic Scene Understanding(论文解读) Spatial As Deep: ...
- 今晚直播 | 高效视频理解模型的设计及ICCV比赛冠军方案解读
「PW Live」是 PaperWeekly 的学术直播间,旨在帮助更多的青年学者宣传其最新科研成果.我们一直认为,单向地输出知识并不是一个最好的方式,而有效地反馈和交流可能会让知识的传播更加有意义, ...
- 直播预告 | 高效视频理解模型的设计及ICCV比赛冠军方案解读
「PW Live」是 PaperWeekly 的学术直播间,旨在帮助更多的青年学者宣传其最新科研成果.我们一直认为,单向地输出知识并不是一个最好的方式,而有效地反馈和交流可能会让知识的传播更加有意义, ...
- 百度AI开发者大会百度大脑论坛:详解“多模态深度语义理解”
7月4日召开的百度AI开发者大会(Baidu Create 2018)上,百度高级副总裁.AI技术平台体系(AIG)总负责人王海峰发布百度大脑3.0,并指出,百度大脑3.0的核心是"多模态深 ...
- 软件工程(三)——敏捷开发和理解需求
笔者正在学习<软件工程-实践者的研究方法>这本书,记录下一些读书笔记,共勉! 1.敏捷 市场条件变化十分迅速,客户和最终用户的需求在演变,从业者必须使软件工程工作保持敏捷,要限定过程应是灵 ...
- 资深大牛带你了解源码!带你轻松理解Android-Hook机制,已开源
前言 我今年38岁,失业前是南方二线城市某知名互联网公司的部门技术主管,婚姻幸福,膝下有一儿一女,组成一个好字,房子车子:有一辆十几万的汽车,一套月供八千的房子,妻子全职在家带娃,家里的一切开销全部指 ...
- Altium Designer 10对集成库的理解
前言 在初次学习Altium Designer 10(一下简称AD10)的时候,很多朋友新手估计也和我一样,在网上找到各种学习视频,找到之后 也是一通看,但是估计很多视频在都会提及到各种库,什么原理图 ...
最新文章
- tf.signal.stft() 短时傅里叶变换的示例
- 2021年春季学期-信号与系统-第五次作业参考答案-第十一移小题—MATLAB
- 隔空操作之隔空下象棋
- Log4j自定义Appender介绍
- JavaScript之三:jQuery插件开发(一)
- jmeter 线程执行顺序_Jmeter-线程组执行顺序控制
- [导入] 堆和栈的区别
- canal原理的一些学习-1(canal的一些原理性介绍)
- 定义入栈java_小师妹学JVM之:java的字节码byte code简介
- ArcGIS实验教程——实验三十二:ArcGIS水文分析(流向分析、计算水流长度、汇流分析、河网分析、流域分析)
- linux shell 引号 参数,shell(三)变量,基本语法,单双引号
- sql server 别名_SQL Server别名概述
- iOS底层 - 符号解析(dSYM 系统符号)Go语言版本
- 83-MongoDB介绍
- Rock Paper将为圣地亚哥教士棒球队开发AR游戏
- python监控端口_python监控设备端口示例
- android音频编辑之音频裁剪的示例代码
- C语言初阶-C语言中static的用法
- 人力资源管理案例-左右为难的经理
- 揭秘!用标准Go语言能写脚本吗?
热门文章
- anaconda要和python安装在一个目录下吗_Python开发环境配置,Anaconda的安装!
- 摄像头图像分析目标物体大小位置_对智能驾驶系统三种环境传感器布局的冗余关系分析...
- ieee802.11数据radiotap介绍
- 怎么找到python的文件_python – 如何找到文件所在的挂载点?
- 【java】调用System.gc()会发生什么?
- 【Flink】Flink 源码之ExecutionGraph
- 【kafka】kafka 控制台 消费 ip 却找 域名 报错 Can‘t resolve address UnresolvedAddressException
- 【ElasticSearch】Es 源码之 RerouteService 源码解读
- Spark报错: IOException: Bad connect ack with firstBadlink as xxx:500010
- 【Flink】Flink ClosureCleaner 闭包清除