自定义标签是用户定义的标签。它们消除了脚本标签的可能性,并将业务逻辑与JSP页面分离。

通过使用自定义标签,相同的业务逻辑可以多次使用。

自定义标签的优点

自定义标签的主要优点如下:

  1. 消除了脚本标签的需求 自定义标签消除了在JSP中被认为是不良编程方法的脚本标签的需求。
  2. 将业务逻辑与JSP分离 自定义标签将业务逻辑从JSP页面中分离出来,使其易于维护。
  3. 可重用性 自定义标签使重复使用相同的业务逻辑成为可能。

使用自定义标签的语法

使用自定义标签有两种方式。它们如下所示:

<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是自定义标签层次结构中的根接口。

3-1.jpg

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,则不再评估任何体内容。

标签: JSP, JSP教程, JSP技术, JSP快速入门, JSP简单用法, JSP编程, JSP下载, JSP基本语法, JSP安装教程, JSP库, JSP指南, JSP基础教程, JSP初级教程, JSP进阶教程