Taglib中常⽤的属性值与tld常⽤标签简介与l设置⾃定
义标签的uri
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。jsp创建
4.declare—变量是否引⽤新对象。默认为True。
5.scope—定义的脚本变量的作⽤域。默认为NESTED如下表格:
值可⽤性⽅法
NESTED开始和结束标签之间在实现BodyTag的标签handler的doInitBody 和doAfterBody⽅法中,否则,在 doStartTag中
AT_BEGIN从开始标签到页⾯的结束在实现BodyTag的标签handler的doInitBody 和doAfterBody⽅法中,否则,在 doStartTag和
doEndTag中
AT_END 在结束标签之后直到页⾯的
结束
在doEndTag中
在function元素中包含标签及其属性的信息:
1. name:与标签库的名字前缀⼀起使⽤的标签的名字, 是JSP容器唯⼀的标签标识。
2. function-class:实现标签的标签处理器类的全名。
3. function-signature:指定标签库中所使⽤的⽅法,与类中的⽅法名称返回值必须相同,必须为全名 。
JSP⾃定义标签各种⽅法的返回值.
另外⼀种⽹上的说法是:
SKIP_BODY : 跳过了开始和结束标签之间的代码,⼀般是在doStartTag中使⽤,不处理标签体,直接调⽤ doEndTagO⽅法。
EVAL_BODY_INCLUDE :处理嵌套的标签,⼀般是在doStartTag中使⽤,由负责处理标签正⽂的tag接⼝提供
EVAL_BODY_BUFFERED :对包含的内容进⾏解析 ⼀般是在doStartTag中使⽤,由负责处理标签正⽂的bodyTag接⼝提供,⽬的是通知jsp 容器作好读取正⽂的⼯作(创建⼀个body-content包装正⽂和获取存放操作结果的out对象,便于以后的操作和输出).
EVAL_BODY_AGAIN:处理标签正⽂, 对标签体循环处理。嵌套标签的iteratorTag接⼝的使⽤
SKIP_PAGE :忽略标签后⾯的 JSP 页⾯,⼀般是在doEndTag中使⽤
EVAL_PAGE :处理标签结束,直接处理页⾯内容。继续执⾏下⾯的页, ⼀般是在doEndTag中使⽤
在l中定义taglib地址
<jsp-config>
<!--定义标签库-->
<taglib>
<!--确定标签库的URI-->
<!-- 确定标签库定义⽂件的位置 -->
<taglib-location>/WEB-INF/test.tld</taglib-location>
</taglib>
</jsp-config>
如果不设定这个的话也可以直接在jsp中直接引⽤本地路径tld的地址即可调⽤
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论