自定义标签是用户定义的标签。它们消除了scriptlet标记的可能性, 并将业务逻辑与JSP页面分开。
通过使用定制标记, 可以多次使用相同的业务逻辑。
自定义标签的优点
自定义标签的主要优点如下:
- 消除了对scriptlet标记的需求自定义标记消除了对scriptlet标记的需求, 这在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接口是JspTag接口的子接口。它提供了在标签的开头和结尾执行操作的方法。
标签接口的字段
Tag界面中定义了四个字段。他们是:
栏位名称 | 描述 |
---|---|
公共静态int EVAL_BODY_INCLUDE | 它评估身体含量。 |
公共静态int EVAL_PAGE | 它在定制标记之后评估JSP页面的内容。 |
公共静态int SKIP_BODY | 它跳过标签的主体内容。 |
公共静态int SKIP_PAGE | 它会在自定义标记之后跳过JSP页面的内容。 |
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页面实现对象调用以释放状态。 |
【JSP中的自定义标签】IterationTag接口是Tag接口的子接口。它提供了另一种重新评估身体的方法。
IterationTag接口的字段
在IterationTag接口中仅定义了一个字段。
- public static int EVAL_BODY_AGAIN它重新评估正文内容。
在IterationTag接口中仅定义了一种方法。
- public int doAfterBody()引发JspException, 它在对主体进行评估之后由JSP页面实现对象调用。如果此方法返回EVAL_BODY_INCLUDE, 将重新评估主体内容, 如果返回SKIP_BODY, 将不再评估主体内容。
TagSupport类实现IterationTag接口。它充当新标记处理程序的基类。它还提供了一些其他方法。
推荐阅读
- JSP自定义标签中的自定义URI
- JSP CRUD示例
- JSP定制标记中的属性
- JSP会话隐式对象
- JSP响应隐式对象
- JSP请求隐式对象
- JSP pageContext隐式对象
- JSP 页面隐式对象()
- JSP教程介绍