自己定义标签中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方法. 支 ...
随机推荐
- CSS自学笔记(1):CSS简介
一.什么是CSS CSS(Cascading Style Sheet(级联样式表))是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言. ...
- linux下gmplayer安装(亲测OK!)
需要的安装包及下载地址: mplayer源代码包(MPlayer-1.0rc4.tar.bz2)下载:http://www.mplayerhq.hu/MPlayer/releases/ 解码器安装包 ...
- 21. 无法执行该操作,因为链接服务器”Server_202”的 OLE DB 访问接口 “SQLNCLI10″ 无法启动分布式事务”
无法执行该操作,因为链接服务器”Server_202”的 OLE DB 访问接口 “SQLNCLI10″ 无法启动分布式事务” 原因:调用存储过程的方式有问题,必须用JDBC方式调用存储过程才可以正常 ...
- 保存网页为图片——滚动截取IE(WebBrowse)
对IE进行编程一直觉得是相当可怕的事情,里面的接口.函数.事件之多,解释之乱,需要了解的方方面面知识之博,让我仿佛看到了微软就是造物主,因为它已成功制造了这样的混沌,弄就了宇宙的初始状态…… 近来做个 ...
- [LeetCode][Python]ZigZag Conversion
# -*- coding: utf8 -*-'''__author__ = 'dabay.wang@gmail.com'https://oj.leetcode.com/problems/zigzag- ...
- NSFileHandle编写json数据格式
代码如下: + (void)writeToFile:(NSDictionary *)params filePath:(NSString *)path { NSData *jsonData = [sel ...
- Android开发(27)--TextView单击链接弹出Activity
话不多说直接上码: 核心源码: package com.example.textview4; import android.app.Activity; import android.content.I ...
- 转载:JS触发服务器控件的单击事件
原文地址:http://blog.csdn.net/joyhen/article/details/8485321 <script src="../Js/jquery-1.4.2.min ...
- java中Log4J的使用笔记
使用Log4J,程序员可以控制日志信息输送的目的地,包括控制台,文件,GUI组件和NT事件记录器,也可以控制每一条日志的输出格式,或通过定义每一条日志信息的级别,更加细致地控制日志的生成过程. Log ...
- hive join 优化
common join : 即reducer join,瓶颈在shuffle阶段,会产生较大的网络io: map join:即把小表放前面,扫描后放入每个节点的内存,在map阶段进行匹配: 开启map ...