JSP自定义标签-简介
1 什么是JSP自定义标签
JSP自定义标签是用户定义的标签。它们消除了开发者在JSP页面直接编写脚本的麻烦,并将业务逻辑与JSP页面分开。
通过使用定制标记,可以多次使用相同的业务逻辑。
2 JSP自定义标签的优点
- 消除了对JSP脚本的需求。JSP自定义标签消除了对JSP脚本的需求,因为JSP脚本在JSP中被认为是不好的编程方法。
- 将业务逻辑与JSP页面分开。JSP自定义标签将业务逻辑与JSP页面分开,以便于维护。
- 可重用性高。JSP自定义标签使得开发者可以一次又一次地重复使用相同的业务逻辑。
3 JSP自定义标签的语法
有两种使用JSP自定义标签的方法。分别是:
<prefix:tagname attr1=value1....attrn=valuen />
或者
<prefix:tagname attr1=value1....attrn=valuen >
body code
</prefix:tagname>
4 JSP自定义标签的API
javax.servlet.jsp.tagext,包含JSP自定义标签需要的API类和接口。JspTag是“自定义标签”层次结构中的根接口。
4.1 JspTag接口
JspTag是JSP自定义标签中所有接口和类的根接口。这是一个标记接口。
4.2 Tag接口
Tag接口是JspTag接口的子接口。它提供了在标签的开头和结尾执行操作的方法。
1)Tag接口的属性
属性 | 说明 |
---|---|
public static int EVAL_BODY_INCLUDE | 把Body读入存在的输出流中,doStartTag()函数可用 |
public static int EVAL_PAGE | 继续处理页面,doEndTag()函数可用 |
public static int SKIP_BODY | 忽略对Body的处理,doStartTag()和doAfterBody()函数可用 |
public static int SKIP_PAGE | 忽略对余下页面的处理,doEndTag()函数可用 |
2)Tag接口的方法
方法 | 说明 |
---|---|
public void setPageContext(PageContext pc) | 设置传入的PageContext对象。 |
public void setParent(Tag t) | 设置当前标签的父标签对象 |
public Tag getParent() | 获取当前标签的父标签对象 |
public int doStartTag()throws JspException | 遇到标签开始时会执行此方法,其返回值有EVAL_BODY_INCLUDE和SKIP_BODY。EVAL_BODY_INCLUDE表示将显示标签间的文字,SKIP_BODY则不显示标签间的文字; |
public int doEndTag()throws JspException | 在遇到标签结束时执行此方法,其返回值是EVAL_PAGE和SKIP_PAGE。EVAL_PAGE表示处理完标签后继续执行以下的JSP网页,SKIP_PAGE则不处理接下来的JSP网页; |
public void release() | 释放获得的所有资源 |
4.3 IterationTag接口
IterationTag接口是Tag接口的子接口。它提供了doAfterBody()方法。
1)IterationTag接口的属性
属性 | 说明 |
---|---|
public static int EVAL_BODY_AGAIN | 重新执行Body的内容 |
2)IterationTag接口的方法
方法 | 说明 |
---|---|
public int doAfterBody()throws JspException | 在显示完标签间的文字后被执行,其返回值有EVAL_BODY_AGAIN和SKIP_BODY,EVAL_BODY_AGAIN会再显示一次标签间的文字,SKIP_BODY则继续执行标签处理的下一步 |
4.4 TagSupport类
TagSupport类实现IterationTag接口。它充当自定义标签处理类的基类。它还提供了一些其他方法。
热门文章
优秀文章