JSP自定义标签

1、标签语言特点

     <开始标签>。标签体。</结束标签>

     。指的是doAfterBody   在标签主体之后

     空标签   <br/><hr/>
    <开始标签 属性名="属性值"></结束标签>
   <开始标签/>

2、自定义标签的开发及使用步骤

     1、创建一个标签助手类(继承BodyTagSupport);

      注意:标签助手类必须和助手类的属性对应,且要提供对应的set/get方法;

     2、创建标签库描述文件(TLD),添加自定义标签的配置。

    注意:TLD文件必须保存到WEB-INF或其子目录下;

     3、在JSP通过Taglib指令导入标签描述文件,并通过指定后缀名访问自定义标签;

   注意:标签助手类一般以tag结尾;

3、JSP自定义标签生命周期图

以这张流程图为例,矩形的表示步骤菱形的表示条件箭头表示方向

图解说明:

当Tomcat运行到自定义标签的时候,会先实例化一个标签助手类,在运行开始标签的时候会先调用doStartTag的方法,doStartTag方法有两种返回类型,一种是SKIP_BODY,跳过标签主体,然后会运行到我们的结束标签,在运行到结束标签的时候,会调用doEndTag方法,而这个doEndTag方法呢,也会有两种类型,一种是SKIP_PAGE,跳过当前页面的剩余内容,也就意味着这个标签之后的页面上的内容都不会显示出来,而另外一种EVAL-PAGE,计算页面的后续内容,也就是在执行完doEndTag标签后,会显示出当前页面的内容;当我们再返回到开始标签的时候,SKIP_BODY-INCLUDE计算并输出主体会去调用doAfterBody这个方法,当跳转到我们的标签主体的时候i,又有两种类型,一种是SKIP_BODY,直接跳过我们的doEndTag结束标签,而另一种呢,就是EVAL-BODY-AGAIN,它会再计算一次我们的主体