自己定义标签中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方法. 支 ...
随机推荐
- 移动端使用rem方法
(function (doc, win) { var docEl = doc.documentElement, resizeEvt = 'orientationchange' in window ? ...
- codeforces 8D Two Friends 二分+ 判断三个圆是否有公共交点
题目链接 有两个人x, y, 现在在A点, x要直接去B点, y要先去C点在去B点, 现在给出x, y两人可以行走的最大距离T1, T2, 求出他们从A点出发之后, 可以走的最长的公共路径. 我们先看 ...
- VI 配置文件(略全)
配置 ~/.vimrc文件. root则放到/etc/vimrc 具体详见代码 "====================================================== ...
- ThinkPHP中 按条件查询后列表显示
最近在项目中遇到了需要根据下拉框的条件筛选出符合条件的数据,然后进行列表显示的问题. 在ThinkPHP中进行列表显示的传统过程:通过在后台控制器中查询出数据,然后通过$this->assign ...
- Django里面的自定义tag和filter
Django的文档里面有这么一句 The app that contains the custom tags must be in INSTALLED_APPS in order for the { ...
- [转]Linux Shell History (快速使用Linux命令)
http://www.blogjava.net/lihao336/archive/2010/10/11/334367.html Linux Shell History (快速使用Linux命令) Li ...
- golang win32编程的一个dll坑
例子 package main import ( "github.com/lxn/win" "strconv" "syscall" ) fu ...
- javascript数组去重算法-----4
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- jquery绑定事件,解绑事件
unbind([type],[data]) 是 bind()的反向操作,从每一个匹配的元素中删除绑定的事件.如果没有参数,则删除所有绑定的事件.你可以将你用bind()注册的自定义事件取消绑定.如果提 ...
- mysql长连接和短连接的问题
什么是长连接? 其实长连接是相对于通常的短连接而说的,也就是长时间保持客户端与服务端的连接状态. 通常的短连接操作步骤是: 连接->数据传输->关闭连接: 而长连接通常就是: 连接-> ...