从BodyTagSupport与TagSupport就可以看出前者是后者的子类;既然是子类,那么后者所具备的功能前者就都是可以具备的.
BodyTagSupport与TagSupport都是关于自定义标签要使用到的类,这里我们可以先看一下这两个类的生命周期
1. TagSupport的生命周期
这张图片是我从网上找来的,因为发现自己画的没有这张表达的清楚,所以就用了这张.
这上面用到的方法有
- doStartTag: 这个方法是在使用标签的时候就开始运行的,如:<m:out></m:out>像这样的话,在运行到<m:out>的时候这个方法就会运行;
- doAfterBody: 如果标签有主题内容,如: <m:out>a</m:out>,标签中的a就是主题内容,这个时候该方法就会运行
- doEndTag: 这个方法是标签结束是运行的方法.如</m:out>运行是触发;
- 这里有一个方法并没有写出来,就是relrese方法,使用该方法可以释放这个标签处理对象所占用的系统空间,不过这个方法一般没有什么用,所以用的人比较少;
2.BodyTagSupport的生命周期
其实我们从这张图片也可以看出,这两者虽然有一些不同,但是大体上还是相同的;
我们来说一下这个类中的几个方法,前者说过的方法与这张图中的方法基本上是一致的;区别就是后者中多出的几个方法
- setBodyContent: 提供BodyContent实例的一个引用,该实例为此标签处理类将主计算结果加以缓存,总之,这个方法并没有什么用
- doInitBody :在第一次处理标签主体内容时,他将对主体进行初始化的工作;
3. BodyTagSupport与TagSupport区别
TagSupport与BodyTagSupport的区别主要是标签处理类是否需要与标签体交互,如果不需要交互的就用TagSupport,否则如果不需要交互就用BodyTagSupport。
这里交互的意思就是: 当计算机播放某多媒体程序的时候,编程人员可以发出指令控制该程序的运行,而不是程序单方面执行下去,程序在接受到编程人员相应的指令后而相应地做出反应,这一过程及行为,我们称之为交互。