自己定义标签中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方法. 支 ...
随机推荐
- CakePHP 2.x 升级3.0
CakePHP 2.x => 3.x 升级手顺 一.Controller层 1.find('list') 原2.x中该方法通过指定option中的'fields'来实现key=>value ...
- ANDROID SHAPE画圆形背景_ANDROID实现角标布局
ANDROID SHAPE画圆形背景_ANDROID实现角标布局 <?xml version="1.0" encoding="UTF-8"?> &l ...
- fragment、ListFragment使用ListView及自定义Listview等初始化操作
fragment.ListFragment使用ListView及自定义Listview等初始化操作 1.先说一下 从官方api中说fragment碎片中使用Listview有专门的 ListView碎 ...
- java.util.zip.GZIPInputStream.readUByte,Not in GZIP format错误处理
问题一: 使用webclient抓取网页时报错:(GZIPInputStream.java:207) atjava.util.zip.GZIPInputStream.readUShort(GZIPIn ...
- Image editing techniques and algorithms using Qt
费了好半天劲先翻译这一点.还有好多地方不明白.先弄明白这一点.继续以后的翻译. 这一篇文章我们将讨论不同的技术和算法来修改图像使用Qt.但是在这之前我们继续你必须知道一些原则处理图片. 这里主要有两种 ...
- CF Codeforces Round #258 (Div. 2) B (451B)
题意:找出一段逆序! 预存a[]数组到b[]数组.将b排序,然后前后找不同找到区间[l,r],然后推断[l,r]是否逆序就能够了!.当然还得特判本身就是顺序的!! ! AC代码例如以下: #inclu ...
- Android自定义Activity酷炫的动画跳转效果
两个Activity跳转的时候,自定义翻页效果: Intent intent = new Intent(FirstActivity.this, SecondActivity.class); sta ...
- 分布式ElasticSearch简单介绍
这里我们解释一些通用的术语,比如集群(cluster).节点(node)和分片(shard).Elasticsearch的扩展机制,以及它怎样处理硬件故障.在此将探索怎样创建你的集群(cluster) ...
- 从零开始Unity3D游戏开发【3烘焙】
烘焙:通过烘焙能把动态场景转化为静态场景.从而提高游戏的性能. [烘焙步骤] 1.Edit---Player---Rendering[forword] 2.Directional light(必须是这 ...
- JavaScript之数组学习
在JavaScript中,数组用关键字Array来声明.声明数组的同时还可以指定数组初始元素的大小,也就是数组的长度;下面代码定义了一个数组长度为6的数组; var beatles=Array(6); ...