JSP自定义标签

来源:互联网 发布:倩女幽魂游戏mac版 编辑:程序博客网 时间:2024/06/08 04:09

一、概述

       JSP中有一块重要的技术:自定义标签(Custom Tag),最近这几天在学习Struts的时候发现Struts中使用了很多自定义标签,如html、bean等。所以我就做了个简单的试验,学习一下这种技术。

       首先介绍一下这种技术吧!

1.优点:

取代了JSP中的Java程序,并且可以重复使用,方便不熟悉Java编程的网页设计人员。

2.开发流程:

(1)       编写JSP,在JSP中使用自定义标签。

(2)       在web.xml中指定JSP中使用的标签的.tld(标签库描述文件)文件的位置。

(3)       .tld文件中指定标签使用的类。

3. 自定义标签的分类:

(1)       简单标签:如< mytaghelloworld/>

(2)       带属性标签:如<imytagcheckinput dbname = “<myBean.getDBName()>”/>

(3)       带标签体的标签:

在自定义标签的起始和结束标签之间的部分为标签体(Body)。Body的内容可以是JSP中的标准标签,也可以是HTML、脚本语言或其他的自定义标签。

<mytagcheckinput dbname = “<myBean.getDBName()>”>

      <mytag:log message=”Table Name”>

<mytagcheckinput />

(4)       可以被scrīpt使用的标签:

定义了id和type属性的标签可以被标签后面的scrīptlet使用。

<mytagconnection id = “oraDB” type = “DataSource” name = “Oracle”>

<%oraDB.getConnection(); %>

4.接口及其他

实际上,自定义标签的处理类实现了Tag Handler对象。JSP技术在javax.servlet.jsp.tagext中提供了多个Tag Handler接口,JSP1.2中定义了Tag、BodyTag、IterationTag接口,在JSP2.0中新增了SimpleTag接口。JSP还提供了上述接口的实现类TagSupport、BodyTagSupport和SimpleTagSupport(SimpleTagSupport只在JSP2.0中才有)。BodyTagSupport实现了BodyTag、Tag和IterationTag接口。

接口及其方法

Tag接口

方法

SimpleTag

dotage

Tag

doStartTag,doEndTag,release

IterationTag

doStartTag,doAfterTag,release

BodyTag

doStartTag,doEndTag,release,doInitBody,doAfterBody

下表引自Sun的JSP在线教程。

Tag Handler Methods

Tag Handler Type

Methods

Simple

doStartTag, doEndTag, release

Attributes

doStartTag, doEndTag, set/getAttribute1...N, release

Body, Evaluation and No Interaction

doStartTag, doEndTag, release

Body, Iterative Evaluation

doStartTag, doAfterBody, doEndTag, release

Body, Interaction

doStartTag, doEndTag, release, doInitBody, doAfterBody, release

下表中的EVAL是evaluate的缩写,意思是:评价, 估计, 求...的值,在下列的返回值中的意思是执行。

返回值

意义

SKIP_BODY

表示不用处理标签体,直接调用doEndTag()方法。

SKIP_PAGE

忽略标签后面的JSP内容。

EVAL_PAGE

处理标签后,继续处理JSP后面的内容。

EVAL_BODY_BUFFERED

表示需要处理标签体。

EVAL_BODY_INCLUDE

表示需要处理标签体,但绕过setBodyContent()和doInitBody()方法

EVAL_BODY_AGAIN

对标签体循环处理。


标签库元素<taglib>属性:表格如下
         <taglib>属性表格</taglib>
属性描述tlib-version本标签库实现版本jsp-version标签库依赖的JSP版本short-name被JSP创作工具使用的一个短的默认名词uri指定这个标签库的uri信息display-name被工具使用的显示用的名字small-icon被工具使用的小图标large-icon被工具使用的大图标description本标签的描述validatorTLD验证信息listener实践监听器规范        tag标签相关属性:
tag标签相关属性表
属性描述nametag标签唯一的名称tag-classtag标签的处理类tei-classtag标签的TagExtraInfo类body-content标签主体的内容display-name显示的名称small-icon被工具使用的小图标large-icon被工具使用的大图标description本标签的描述variable脚本变量的信息attribute标签属性的信息


原创粉丝点击