jsp自定义标签

自定义标签是可重用的组件代码,并且允许开发人员为复杂的操作提供逻辑名称。

 

  •  Tag接口

所有传统标签的父接口。该接口有两个核心方法(doStartTag和doEndTag)以及四个常量(EVAL_BODY_INCLUDE,SKIP_BODY,EVAL_PAGE和SKIP_PAGE)。其中doStartTag方法可以返回EVAL_BODY_INCLUDE和SKIP_BODY,用于控制Web容器是否执行标签体的内容;doEndTag方法可以返回EVAL_PAGE和SKIP_PAGE,用于控制Web容器是否执行自定义标签后面的内容。

 

  • TagSupport类

标签类通过继承该类,就不需要实现Tag接口中的每一个方法,这样将大大简化自定义标签的开发工作。

 

  • doStartTag,doEndTag方法的返回值及作用

EVAL_BODY_INCLUDE:执行标签体中的内容

EVAL_BODY_BUFFERE:执行标签体中的内容,并将标签体的执行结果保存在BodyContent对象中,以备后续处理和加工

SKIP_BODY:忽略标签体的内容

EVAL_BODY_AGAIN:重复执行标签体的内容

EVAL_PAGE:继续执行自定义标签后面的内容

SKIP_PAGE:忽略自定义标签后面的内容

 

  • 标签库元素<taglib>属性

tlib-version:本标签库实现版本

jsp-version:标签库依赖的JSP版本

short-name:被JSP创作工具使用的一个短的默认名词

uri:指定这个标签库的uri信息

display-name:被工具使用的显示用的名字

description:本标签的描述

 

  • tag标签相关属性表

name:tag标签唯一的名称

tag-class:tag标签的处理类

body-content:标签主体的内容

display-name:显示的名称

description:本标签的描述

attribute:标签属性的信息

 

  • 方法说明

 

setPageContext() 所在jsp页面的pageContext注入进来,目的是为了在后面的方法中可以访问到jsp页面对象的pageContext属性

setParent()       设置此标签的父标签 

setAttribute()   标签中的属性注入到此class的属性,不需要自己实现但要提供属性的getset方法 doStartTag()       在开始标签属性设置后调用,如果返回SKIP_BODY则忽略标签之中的内容,如果返回EVAL_BODY_INCLUDE则将标签体的内容进行输出 

doEndTag()         结束标签之前调用,返回SKIP_PAGE跳过整个jsp页面后面的输出,返回EVAL_PAGE执行页面余下部分

release()          生命周期结束时调用

 

 

 

 

 

 

你可能感兴趣的:(jsp自定义标签)