1. 组件:标签处理类;标签性质文件;jsp网页
2. TagSupport 类
1public int doStartTag()throws JspException
遇到<mytag>时会根据这个类中的程序内容对数据进行处理,并回传一个整数值:Tag.SKIP_BODY:本题内容被忽略。将控制权转交给doEndTag()
或Tag.EVAL_BODY_INCLUDE:本题内容正常执行显示,但不对本题内容作任何的运算或处理。
2public int doAfterBody() throws JspException
可重复处理本体内容。回传一个整数值:
Tag.SKIP_BODY:本题内容被忽略。将控制权转交给doEndTag()
或IterationTag.EVAL_BODY_Again本题内容重复执行,并再度调用doAfterBody(),直到回传SKIP_BODY为止。
3public doEndTag() throws JspException
自定义标签结束标签。回传一个整数值:
Tag.SKIP_PAGE:表示jsp网页的执行马上停止,所有在网页上的内容,包括jsp的程序和静态文件都应该被马上忽略,任何输出应该马上回传到用户浏览器上。
或Tag.EVAL_PAGE:表示jsp网页能够正常执行。
不管回传那个值 都应该最后调用release()方法。
4public void release()
将标签处理类中的所产生或是获得的所有资源都释放,并重新设定标签处理类的初始状态,然后这个标签处理类再释放至资源池中,等待下次使用。
3. BodyTagSupport类
继承于TagSupport类,并实现BodyTag接口。可以处理本题内容的数据。
1public int doStartTag()throws JspException
遇到<mytag>时会根据这个类中的程序内容对数据进行处理,并回传一个整数值:Tag.SKIP_BODY:本题内容被忽略。将控制权转交给doEndTag()
或 BodyTag.EVAL_BODY_BUFFERED:表示标签的本题内容应该被处理,并且处理结果必须存储在BodyContent类中。
或Tag.EVAL_BODY_INCLUDE:本题内容正常执行显示,但不对本题内容作任何的运算或处理。
为了处理标签的本题内容,首先要产生BodyContent类的实体,如同调用setBodyContent(BodyContent b)一样,然后Contenter再调用doInitBody()方法,让用户能够新增初始值。
处理完标签的本题内容后,Contener会调用doAfterBody(),重复处理标签的本题内容。
2public int doAfterBody() throws JspException
可重复处理本体内容。回传一个整数值:
Tag.SKIP_BODY:本题内容被忽略。将控制权转交给doEndTag()
或IterationTag.EVAL_BODY_Again本题内容重复执行,并再度调用doAfterBody(),直到回传SKIP_BODY为止。
3public doEndTag() throws JspException
自定义标签结束标签。回传一个整数值:
Tag.SKIP_PAGE:表示jsp网页的执行马上停止,所有在网页上的内容,包括jsp的程序和静态文件都应该被马上忽略,任何输出应该马上回传到用户浏览器上。
或Tag.EVAL_PAGE:表示jsp网页能够正常执行。
不管回传那个值 都应该最后调用release()方法。
4public BodyContent getBodyContent()
5public void setBodyContent(BodyContent b)
6public void doInitBody() throws JspException