标签运行时问题:
1. 标签体中间无内容,运行时只执行 doStartTag() -> doEndTag()
2.标签体中间有内容,setBodyContent(),可以把中间体内容先保存到bodyContent当中,在doAfterBody()方法,可以取出bodyContent中标签体的内容.
3.标签体中间有内容,在doEndTag()之前(包括当前方法),必须执行bodyContent.writeOut(bodyContent.getEnclosingWriter())方法,使得标签体内容可以输出到页面上
4.执行方法过程中,return 返回值问题 :
见流程图, 可以看到, 当执行完doStartTag()时,若标签体中有内容
return值为EVAL_BODY_BUFFERED时,则会去执行setBodyContent()->doInitBody()->doAfterBody()流程;
return值为EVAL_BODY_INCLUDE方法则调用doAfterBody()方法;
return值为SKIP_BODY则执行doEndTag()方法.
当执行到doAfterBody()方法时,
return值为EVAL_BODY_AGAIN时,则会重新调用doAfterBody()方法.
当执行doEndTag()方法时,
return值为EVEL_PAGE时,则正常执行页面内容;
return值为SKIP_PAGE时,则将不执行标签体后面的代码,而只显示当前已经解析的HTML页面标签
分享到:
相关推荐
在实际开发中,有时我们需要根据项目需求实现特定的功能,比如动态生成SQL或者进行复杂的业务逻辑处理,这时MyBatis的自定义标签功能就显得尤为重要。 自定义标签是MyBatis框架的一大特色,它允许我们扩展XML映射...
在Struts2中,自定义标签是提高代码可读性和可维护性的重要工具。本文将深入探讨Struts2自定义标签的实现机制、优点以及如何在实际项目中进行应用。 一、Struts2自定义标签的概念 自定义标签是JSP的一种扩展,允许...
在JavaServer Pages (JSP) 技术中,自定义标签是扩展JSP功能的关键手段,它允许开发者创建可重用的组件,提高代码的可维护性和可读性。本实例将深入探讨如何实现一个简单的JSP自定义标签。 首先,自定义标签的实现...
在ThinkPHP中,自定义标签(Tag Lib)是一种强大的特性,允许开发者扩展模板引擎的功能,使其更符合项目需求。下面将详细解释如何在ThinkPHP 3.0版本中实现自定义标签及其使用方法。 1. **自定义标签的作用** ...
一个“自定义标签”是开发者为了扩展JSP(JavaServer Pages)功能而创建的,它允许我们封装复杂逻辑并将其作为可重用的组件。本项目提供了一个用于分页的自定义标签,适用于那些需要在网页上进行数据分页展示的应用...
本篇文章将详细阐述如何在CKEditor 4.0中进行自定义标签操作,并提供经过修改的编辑器JAR包供下载。 CKEditor 4.0是一款开源的JavaScript富文本编辑器,它支持多种浏览器环境,提供丰富的功能和高度可定制性。...