自己定义标签中tagsupport的一些方法
TagSupport生命周期
TagSupport类分别实现了Tag与IterationTag界面,其预设的回传值是:doStartTag()回传 SKIP_BODY、EVAL_BODY_INCLUDE
doAfterBodyTag()回传SKIP_BODY、EVAL_BODY_AGAIN
doEndTag()回传EVAL_PAGE。SKIP_PAGE
所以在继承 TagSupport之后,假设没有改写不论什么的方法,则在标签处理上运行的顺序是:
doStartTag() -> 不显示本体文字 -> doEndTag() -> 运行接下来的JSP网页
假设您改写了doStartTag(),则您必须指定回传值,假设指定了EVAL_BODY_INCLUDE,则预设会照下面的顺序运行:
doStartTag() -> 显示本体文字 -> doAfterBodyTag()->doEndTag()->运行接下来的JSP网页
简单的说,假设您继承了TagSupport并改写了当中的一些方法,则您必须指定方法合法的回传值,假设不改写,则会有其预设的回传值,
假设您在处理标签时,引用了一些资源,比如档案I/O或是资料库连结,则您能够改写release()方法,这种方法会在doEndTag()之后运行,您能够在处理完标签之后用它来释放先前所使用到的资源。
TagSupport类
TagSupport类实现了Tag接口,为我们提供了4个重要的方法。
TagSupport类中的经常用法
|
方 法 名 称 |
描 述 |
|
int doStartTag() |
遇到自己定义标签開始时调用该方法, 其可选返回值例如以下。 SKIP_BODY:表示不用处理标签体, 直接调用doEndTag()方法 EVAL_BODY_INCLUDE:正常运行 标签体,但不正确标签体做不论什么处理 |
|
int doAfterBody() |
反复运行标签体内容的方法, 其可选返回值例如以下。 SKIP_BODY:表示不用处理标 签体,直接调用doEndTag()方法 EVAL_BODY_AGAIN:反复 运行标签体内容 |
|
方 法 名 称 |
描 述 |
|
int doEndTag() |
遇到自己定义标签结束时调用该方法, 其可选返回值例如以下。 SKIP_PAGE:忽略标签后面的JSP 内容,中止JSP页面运行 EVAL_PAGE:处理标签后,继 续处理JSP后面的内容 |
|
void release() |
释放获得的全部资源 |
自己定义标签中tagsupport的一些方法的更多相关文章
- jquery遍历标签中自定义的属性方法
在开发中我们有时会对html标签添加属性,如何遍历处理 <ul> <li name="li1" sortid="nav_1">aaaaa ...
- ASP.NET动态加载Js代码到Head标签中(三种方法)
方法一代码如下: HtmlGenericControl Include2 = new HtmlGenericControl("script"); Include2.Attribut ...
- 深入分析JavaWeb Item23 -- jsp自己定义标签开发入门
一.自己定义标签的作用 自己定义标签主要用于移除Jsp页面中的java代码. 二.自己定义标签开发和使用 2.1.自己定义标签开发步骤 1.编写一个实现Tag接口的Java类(标签处理器类) 要编写一 ...
- 5.Struts.xml标签中的一些小技巧
1.为Action属性注入值如给actions包下的test.java类中变量username赋值为"xingyun"在struts.xml中添加下面这段代码: <strut ...
- JSP自己定义标签继承哪个类
JSP自己定义标签继承哪个类 解:JSP自己定义标签继承TagSupport
- 03_MyBatis基本查询,mapper文件的定义,测试代码的编写,resultMap配置返回值,sql片段配置,select标签标签中的内容介绍,配置使用二级缓存,使用别名的数据类型,条件查询ma
1 PersonTestMapper.xml中的内容如下: <?xmlversion="1.0"encoding="UTF-8"?> < ...
- 为什么不能在 body 标签的前面的 script 标签中定义 JS 全局变量?
<!DOCTYPE html> <!-- 为什么不能在 body 标签的前面的 script 标签中定义 JS 全局变量? 在全局环境下的代码就是在页面加载阶段从上到下一边加载一边执 ...
- 如何自定义JSTL标签与SpringMVC 标签的属性中套JSTL标签报错的解决方法
如何自定义JSTL标签 1.创建一个类,从SimpleTagSupport继承 A) 通过继承可以获得当前JSP页面上的对象,如JspContext I) 实际上可以强转为PageContext II ...
- onload()方法只能在body标签中调用吗?怎么调用多个多个方法?
第一个问题: onload()方法并非只能在body标签中调用的,还可以在js中用window.onload = function() {函数名};来调用:另外img等标签也支持onload方法. 支 ...
随机推荐
- PHP中计算时间差(上周,上月,去年,昨天等)
运用了date()和strtotime()函数,直接上代码 echo date('Y-m-d' , strtotime('-1 day')).PHP_EOL; echo date('Y-m-d' , ...
- [LeetCode]题解(python):153-Find Minimum in Rotated Sorted Array
题目来源: https://leetcode.com/problems/find-minimum-in-rotated-sorted-array/ 题意分析: 在一个不重复的翻转的数组里面找到最小那个 ...
- ARM Cortex M3(V7-M架构)硬件启动程序 一
Cortex-m3启动代码分析笔记 启动代码文件名是STM32F10X.S,它的作用先总结下,然后再分析. 启动代码作用一般是: 1)堆和栈的初始化: 2)中断向量表定义: 3)地址重映射及中断向量表 ...
- Delphi COM编程技术三类型库(库文件中的工具栏,很全)
在COM组件的使用和开发过程中经常需要获取有关组件的信息.而COM组件以二进制代码的形式发布,如果不借助特定的工具这些相关信息将难以被获取.通过访问类型库就可以查看COM组件的信息. 一.类型库的基础 ...
- HDU 5811 Colosseo(拓扑排序+单调DP)
[题目链接] http://acm.hdu.edu.cn/showproblem.php?pid=5811 [题目大意] 给出 一张单向图,现在将其划分成了两个部分,问划分之后的点是否分别满足按照一定 ...
- Mysql 语句汇总(性能篇)
查询mysql 哪些表正在被锁状态: show open TABLES where In_use > 0; show open table from XXX(数据库名);//查看数据库哪些表正在 ...
- Eclipse 配置Tomcat启动参数 Java EE IDE for Web Developers. Version: Helios Service Release 2
因为在开发的过程中出现了PerGen Space.所以需要修改Tomcat的启动参数,郁闷的事情是公司不使用盗版,因此离开了熟悉的一塌糊涂的MyEclipse界面还真的找不到配置Tomat启动参数的地 ...
- 【转】Loss Function View
感谢原文作者!原文地址:http://eletva.com/tower/?p=186 一.Loss Function 什么是Loss Function?wiki上有一句解释我觉得很到位,引用一下:Th ...
- [Android]The connection to adb is down, and a severe error has occured.
在Android开发时,有时我们开启虚拟机执行程序时.会报类似下面错误: [2015-07-19 15:08:29 - TestXiaoYanLibrary] The connection to ad ...
- 【Cocos2d TestCpp实例模仿一】-- ActionsTest
转载请注明出处:http://blog.csdn.net/oyangyufu/article/details/25252539 CCActionInterval(持续性动作) 位置性变化动作以To结束 ...