自定义JSP标签

来源:互联网 发布:mac默认图片查看器 编辑:程序博客网 时间:2024/06/10 13:46

一、概念

自定义JSP标签就是程序员定义的一种JSP标签,这种标签把那些信息显示逻辑封装在一个单独的Java类中,通过一个XML文件来描述它的使用。当页面中需要使用类似的显示逻辑时,就可以在页面中插入这个标签,从而完成相应的功能。

二、执行过程

当一个含有自定义标签的JSP页面被JSP引擎(Web容器)转译成Servlet时,JSP引擎遇到自定义的标签,会把这个自定义标签转化成对一个称为“标签处理类”的调用。之后,当这个JSP页面被执行时,JSP引擎就会调用这个“标签处理类”对象,并执行其内部定义的相应操作方法,从而完成相应的功能。

三、开发流程

创建标签的处理类(Tag Handle Class)。这个类用来定义标签的行为,并在JSP引擎遇到自定义标签时调用执行。
创建标签库描述文件(Tag Library Descriptor File)。
在web.xml文件中声明TLD的位置。在JSP 1.2以上规范中此步骤是可选的。
在JSP文件中用taglib指令引入标签库,然后使用标签库描述文件中指定的标签名来使用它。

四、jsp标签API

Tag:此接口定义对于所有标签处理类都需要实现的方法。
IterationTag:此接口扩展了Tag接口,增加了控制重复执行标签主体的方法。
BodyTag:此接口扩展了IterationTag接口,并增加了访问和操作标签主体内容的方法。

五、用BodyTagSupport类开发自定义标签

BodyTagSupport类中增加了两个方法:
       setBodyContent(BodyContent bc):容器在执行这个标签处理类的实例时,将调用该方法,把标签主体返回的内容缓存在                      BodyContent类的实例中。BodyContent除了从父类JspWriter继承提供用于向响应体中写入文本的方法,还提供了用于获取它缓冲的标签体内容。
       doInitBody():计算标签主体之前调用该方法进行初始化共,可以向bodyContent对象中写入初始内容,这些内容会放置在标签主体内容之前。
BodyContent类专门用于缓存标签主体返回的内容,包括静态文本以及由嵌套标签或脚本元素所创建的动态内容