JSP教程-在JSP中使用自定义标签
自定义标签是用户定义的标签。它们消除了脚本标签的可能性,并将业务逻辑与JSP页面分离。
通过使用自定义标签,相同的业务逻辑可以多次使用。
自定义标签的优点
自定义标签的主要优点如下:
- 消除了脚本标签的需求 自定义标签消除了在JSP中被认为是不良编程方法的脚本标签的需求。
- 将业务逻辑与JSP分离 自定义标签将业务逻辑从JSP页面中分离出来,使其易于维护。
- 可重用性 自定义标签使重复使用相同的业务逻辑成为可能。
使用自定义标签的语法
使用自定义标签有两种方式。它们如下所示:
<prefix:tagname attr1=value1....attrn=valuen />
<prefix:tagname attr1=value1....attrn=valuen >
body code
</prefix:tagname>
JSP自定义标签API
javax.servlet.jsp.tagext包含了JSP自定义标签API的类和接口。JspTag是自定义标签层次结构中的根接口。
JspTag接口
JspTag是所有自定义标签中使用的接口和类的根接口。它是一个标记接口。
Tag接口
Tag接口是JspTag接口的子接口。它提供了在标签开始和结束时执行操作的方法。
Tag接口的字段
Tag接口中定义了四个字段。它们是:
字段名称 | 描述 |
---|---|
public static int EVAL_BODY_INCLUDE | 它评估体内容。 |
public static int EVAL_PAGE | 在自定义标签之后评估JSP页面内容。 |
public static int SKIP_BODY | 它跳过标签的体内容。 |
public static int SKIP_PAGE | 在自定义标签之后跳过JSP页面内容。 |
Tag接口的方法
Tag接口的方法如下:
方法名称 | 描述 |
---|---|
public void setPageContext(PageContext pc) | 它设置给定的PageContext对象。 |
public void setParent(Tag t) | 它设置标签处理器的父标签。 |
public Tag getParent() | 它返回父标签处理器对象。 |
public int doStartTag()throws JspException | 它由JSP页面实现对象调用。JSP程序员应重写此方法,并定义在标签开始时要执行的业务逻辑。 |
public int doEndTag()throws JspException | 它由JSP页面实现对象调用。JSP程序员应重写此方法,并定义在标签结束时要执行的业务逻辑。 |
public void release() | 它由JSP页面实现对象调用以释放状态。 |
IterationTag接口
IterationTag接口是Tag接口的子接口。它提供了一个额外的方法来重新评估体。
IterationTag接口的字段
IterationTag接口中只定义了一个字段。
- public static int EVAL_BODY_AGAIN 它重新评估体内容。
IterationTag接口的方法
IterationTag接口中只定义了一个方法。
- public int doAfterBody()throws JspException 在评估体后由JSP页面实现对象调用。如果此方法返回EVAL_BODY_INCLUDE,则将重新评估体内容;如果返回SKIP_BODY,则不再评估任何体内容。