<开始标签>。标签体。</结束标签>
。指的是doAfterBody 在标签主体之后
空标签 <br/><hr/>
<开始标签 属性名="属性值"></结束标签>
<开始标签/>
1、创建一个标签助手类(继承BodyTagSupport);
注意:标签助手类必须和助手类的属性对应,且要提供对应的set/get方法;
2、创建标签库描述文件(TLD),添加自定义标签的配置。
注意:TLD文件必须保存到WEB-INF或其子目录下;
3、在JSP通过Taglib指令导入标签描述文件,并通过指定后缀名访问自定义标签;
注意:标签助手类一般以tag结尾;
以这张流程图为例,矩形的表示步骤,菱形的表示条件,箭头表示方向!
图解说明:
当Tomcat运行到自定义标签的时候,会先实例化一个标签助手类,在运行开始标签的时候会先调用doStartTag的方法,doStartTag方法有两种返回类型,一种是SKIP_BODY,跳过标签主体,然后会运行到我们的结束标签,在运行到结束标签的时候,会调用doEndTag方法,而这个doEndTag方法呢,也会有两种类型,一种是SKIP_PAGE,跳过当前页面的剩余内容,也就意味着这个标签之后的页面上的内容都不会显示出来,而另外一种EVAL-PAGE,计算页面的后续内容,也就是在执行完doEndTag标签后,会显示出当前页面的内容;当我们再返回到开始标签的时候,SKIP_BODY-INCLUDE计算并输出主体会去调用doAfterBody这个方法,当跳转到我们的标签主体的时候i,又有两种类型,一种是SKIP_BODY,直接跳过我们的doEndTag结束标签,而另一种呢,就是EVAL-BODY-AGAIN,它会再计算一次我们的主体!