【转】JSP自定义标签
转载自:http://www.cnblogs.com/edwardlauxh/archive/2010/05/20/1918587.html
tld标签的描述文件
标签的描述文件是一个描述整个标签库标记信息和标签库中每个标签处理器以及其属性的XML文档。可以包含如下的一些元素。
1. tlibversion:标签库版本号,是一个点式十进制数(例如1.0),最多为4组小数点分隔的数字组成。 2. jspversion:标签库所需的JSP规范最低版本,例如JSP1.1。 3. shortname:标签库的缩写名,JSP可以使用该名字作为库中标签的缺省前缀。 4. uri:标签库唯一URI的元素。 5. info:标签库描述信息。 6. tag:加入标签,描述组成库的每个标签。
在tag元素中包含标签及其属性的信息:
1. name:与标签库的名字前缀一起使用的标签的名字, 是JSP容器唯一的标签标识。 2. tagclass:实现标签的标签处理器类的全名。 3. teiclass:标签附加信息(TEI)类的全名,TEI类给出关于标签处理器创建变量及有效性验证的信息。 4. bodycontent:描述标签处理器如何使用标签体的内容,有三种取值: l empty:表示标签体必须为空; l JSP:表示脚本元素和模板及其它标签一样被评估。 l tagdependent:内容被原封不动写入BodyContent,其它脚本元素以源码形式出现,而不被JSP容器解释。 5. info:标签的描述性信息。 6. attribute:使用标签时被编码的属性信息,用于定义标签的属性。
“attribute”元素中又可以包含下面几个元素:
1. name:属性的名字。
2. required:属性是否必须。
3. rtexprvalue:属性值能否用表达式指定
7.variable 元素
1.name-given:变量名为常量
2.name-from-attribute:一个属性的名字,其转换时(translation-time)值将给出属性的名字
必须有name-given或者name-from-attribute之中的一个。下列子元素是可选的
3.variable-class—变量的完全限定名。默认为java.lang.String。
4.declare—变量是否引用新对象。默认为True。
5.scope—定义的脚本变量的作用域。默�%A���NESTED如下表格:
| 值 | 可用性 | 方法 |
| NESTED | 开始和结束标签之间 | 在实现BodyTag的标签handler的doInitBody 和doAfterBody方法中,否则,在 doStartTag中 |
| AT_BEGIN | 从开始标签到页面的结束 | 在实现BodyTag�%�6��签handler的doInitBody 和doAfterBody方法中,否则,在 doStartTag和doEndTag中 |
|
AT_END |
在结束标签之后直到页面的结束 | 在doEndTag中 |
在function元素中包含标签及其属性的信息:
1. name:与标签库的名字前缀一起使用的标签的名字, 是JSP容器唯一的标签标识。
2. function-class:实现标签的标签处理器类的全名。
3. function-signature:指定标签库中所使用的方法,与类中的方法名称返回值必须相同,必须为全名 。
JSP自定义标签各种方法的返回值.
EVAL_BODY_INCLUDE:把BODY读入存在的输出流中,doStartTag()函数可用。
EVAL_PAGE:继续处理页面,doEndTag()函数可用。
SKIP_BODY:忽略对BODY的处理,doStartTag()和doAfterBody()函数可用。
SKIP_PAGE:忽略对余下函数的处理,doEndTag()函数可用。
EVAL_BODY_TAG:已经废止,由EVAL_BODY_BUFFERED取代。
EVAL_BODY_BUFFERED:申请缓冲区,由setBodyContent()函数得到的BodyContent对象来处理tag的Body,如果类实现了BodyTag,那么doStartTag()可用,否则非法。
另外一种网上的说法是:
SKIP_BODY : 跳过了开始和结束标签之间的代码,一般是在doStartTag中使用,不处理标签体,直接调用 doEndTagO方法。
EVAL_BODY_INCLUDE :处理嵌套的标签,一般是在doStartTag中使用,由负责处理标签正文的tag接口提供
EVAL_BODY_BUFFERED :对包含的内容进�A1�解析 一般是在doStartTag中使用,由负责处理标签正文的bodyTag接口提供,目的是通知jsp容器作好读取正文的工作(创建一个body-content包装正文和获取存放操作结果的out对象,便于以后的操作和输出).
EVAL_BODY_AGAIN:处理标签正文, 对标签体循环处理。嵌套标签的iteratorTag接口的使用
SKIP_PAGE :忽略标签后面的 JSP 页面,一般是在doEndTag中使用
EVAL_PAGE :处理标签结束,直接处理页面内容。继续执行下面的页, 一般是在doEndTag中使用
%�C/pre>
在web.xml中定义taglib地址
<jsp-config> <!--定义标签库--> <taglib> <!--确定标签库的URI--> <taglib-uri>http://lauedward.spaces.live.com/</taglib-uri> <!-- 确定标签库定义文件的位置 --> <taglib-location>/WEB-INF/test.tld</taglib-location> </taglib> </jsp-config> 如果不设定这个的话也可以直接在jsp中直接引用本地路径tld的地址即可调用 至此,taglib相关的教程就暂告一段落了.
【转】JSP自定义标签的更多相关文章
- JSP 自定义标签
0 标签技术的API继承体系 1 作用 jsp自定义标签用于移除页面中的java代码 2 实现 2.1 标签处理类ViewIPTag.java package com.zsm.util; import ...
- JSP自定义标签开发入门
一般情况下开发jsp自定义标签需要引用以下两个包 import javax.servlet.jsp.*; import javax.servlet.jsp.tagext.*; 首先我们需要大致了解开发 ...
- 一个简单的jsp自定义标签
学到了一个简单的jsp自定义标签,后面有更多的例子,会更新出来: 例子1: 步骤: 1.编写标签实现类: 继承javax.servlet.jsp.tagext.SimpleTagSupport; 重写 ...
- jsp自定义标签分析
jsp自定义标签的优势体现在于jsp页面上面减少了java代码. jsp自定义标签有三大部分组成,首先是类继承TagSupport,实现doStartTag方法. public int doStart ...
- JSP自定义标签库
总所周知,JSP自定义标签库,主要是为了去掉JSP页面中的JAVA语句 此处以格式化输出时间戳为指定日期格式为例,简单介绍下JSP自定义标签的过程. 编写标签处理类(可继承自javax.servlet ...
- JSP自定义标签配置
JSP自定义标签配置 JSP自定义标签 <taglib> <taglib-uri>/WEB-INF/you.tld</taglib-uri> ...
- jsp 自定义标签解决jsp页面中int时间戳的时间格式化问题
jsp 自定义标签解决jsp页面中int时间戳的时间格式化问题 之前在项目中根据需求,需要自定义标签,经过查询w3c文档,自己也踩了一些坑,特此记录自定义标签的步骤,下面就以我之前的一个例子中的定义一 ...
- java JSP自定义标签
来至: http://blog.csdn.net/jiangwei0910410003/article/details/23915373 http://blog.csdn.net/jiangwei09 ...
- JSP自定义标签开发入门《转》
JSP自定义标签开发入门 一般情况下开发jsp自定义标签需要引用以下两个包 import javax.servlet.jsp.*; import javax.servlet.jsp.tagext.*; ...
- 报错分析---->jsp自定义标签:类cannot be resolved to a type
这个困扰我一个晚上,仔细上网查阅发现,主要是因为jsp自定义标签要用到的这个jsp-api.jar的问题 这是我eclipes中的jar: 然而jsp-api.jar这个jar在tomcat中也有(报 ...
随机推荐
- ThinkPHP5作业管理系统中处理学生未交作业与已交作业信息
在作业管理系统中,学生登陆到个人中心后可以通过左侧的菜单查看自己已经提交的作业和未提交作业.那么在系统中如何实现这些数据的查询的呢?首先我们需要弄清楚学生(Student).班级(class).作业提 ...
- 贝叶斯网(1)尝试用Netica搭建简单的贝叶斯网并使用贝叶斯公式解释各个bar的结果
近来对贝叶斯网十分感兴趣,按照博客<读懂概率图模型:你需要从基本概念和参数估计开始>给出的第一个例子,试着搭建了一个student网. (1)点击绿F,对条件概率表予以输入(包括两个祖先节 ...
- 在 C/C++ 中使用 TensorFlow 预训练好的模型—— 直接调用 C++ 接口实现
现在的深度学习框架一般都是基于 Python 来实现,构建.训练.保存和调用模型都可以很容易地在 Python 下完成.但有时候,我们在实际应用这些模型的时候可能需要在其他编程语言下进行,本文将通过直 ...
- 树莓派搭建 Hexo 博客(二)
Hexo 一个开源的博客框架,本文记录了一下在树莓派上搭建 Hexo 博客的过程. 上一篇介绍了 Hexo 的配置,现在网站已经能在本地访问了,也能通过 hexo generate 命令生成静态界面 ...
- new String(str.getBytes(“gbk”),“gbk”)的用法详解
new String(str.getBytes(“gbk”),“gbk”)的用法详解 前提是str存放的是汉字 一.如果是new String(str.getBytes(“gbk”),“gbk”)时, ...
- 关于php网络爬虫phpspider
前几天,被老板拉去说要我去抓取大众点评某家店的数据,当然被我义正言辞的拒绝了,理由是我不会...但我的反抗并没有什么卵用,所以还是乖乖去查资料,因为我是从事php工作的,首先找的就是php的网络爬虫源 ...
- 【bzoj3122】[Sdoi2013]随机数生成器 BSGS思想的利用
题目描述 给出递推公式 $x_{i+1}=(ax_i+b)\mod p$ 中的 $p$.$a$.$b$.$x_1$ ,其中 $p$ 是质数.输入 $t$ ,求最小的 $n$ ,使得 $x_n=t$ . ...
- 【bzoj2661】[BeiJing wc2012]连连看 最大费用最大流
题目描述 凡是考智商的题里面总会有这么一种消除游戏.不过现在面对的这关连连看可不是QQ游戏里那种考眼力的游戏.我们的规则是,给出一个闭区间[a,b]中的全部整数,如果其中某两个数x,y(设x>y ...
- [NOIP2016]愤怒的小鸟 DP
---题面--- 题解: 首先观察数据范围,n <= 18,很明显是状压DP.所以设f[i]表示状态为i时的最小代价.然后考虑转移. 注意到出发点(0, 0)已经被固定,因此只需要2点就可以确定 ...
- POJ 3801/HDU 3157 Crazy Circuits | 有下界的最小流
题目: POJ最近总是炸 所以还是用HDU吧http://acm.hdu.edu.cn/showproblem.php?pid=3157 题解: 题很长,但其实就是给个有源汇带下界网络流(+是源,-是 ...