2021-04-21 22:05  阅读(86)
文章分类:JSP 简单教程 文章标签:JSP
©  原文作者:一点教程 原文地址:http://www.yiidian.com/jsp/

1 什么是JSP自定义标签

JSP自定义标签是用户定义的标签。它们消除了开发者在JSP页面直接编写脚本的麻烦,并将业务逻辑与JSP页面分开。

通过使用定制标记,可以多次使用相同的业务逻辑。

2 JSP自定义标签的优点

  1. 消除了对JSP脚本的需求。JSP自定义标签消除了对JSP脚本的需求,因为JSP脚本在JSP中被认为是不好的编程方法。
  2. **将业务逻辑与JSP页面分开。**JSP自定义标签将业务逻辑与JSP页面分开,以便于维护。
  3. 可重用性高。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是“自定义标签”层次结构中的根接口。

20210421220115_1.png

4.1 JspTag接口

JspTag是JSP自定义标签中所有接口和类的根接口。这是一个标记接口。

4.2 Tag接口

Tag接口是JspTag接口的子接口。它提供了在标签的开头和结尾执行操作的方法。

1)Tag接口的属性

属性 说明
publicstaticintEVAL_BODY_INCLUDE 把Body读入存在的输出流中,doStartTag()函数可用
publicstaticintEVAL_PAGE 继续处理页面,doEndTag()函数可用
publicstaticintSKIP_BODY 忽略对Body的处理,doStartTag()和doAfterBody()函数可用
publicstaticintSKIP_PAGE 忽略对余下页面的处理,doEndTag()函数可用

2)Tag接口的方法

方法 说明
publicvoidsetPageContext(PageContextpc) 设置传入的PageContext对象。
publicvoidsetParent(Tagt) 设置当前标签的父标签对象
publicTaggetParent() 获取当前标签的父标签对象
publicintdoStartTag()throwsJspException 遇到标签开始时会执行此方法,其返回值有EVAL_BODY_INCLUDE和SKIP_BODY。EVAL_BODY_INCLUDE表示将显示标签间的文字,SKIP_BODY则不显示标签间的文字;
publicintdoEndTag()throwsJspException 在遇到标签结束时执行此方法,其返回值是EVAL_PAGE和SKIP_PAGE。EVAL_PAGE表示处理完标签后继续执行以下的JSP网页,SKIP_PAGE则不处理接下来的JSP网页;
publicvoidrelease() 释放获得的所有资源

4.3 IterationTag接口

IterationTag接口是Tag接口的子接口。它提供了doAfterBody()方法。

1)IterationTag接口的属性

属性 说明
publicstaticintEVAL_BODY_AGAIN 重新执行Body的内容

2)IterationTag接口的方法

方法 说明
publicintdoAfterBody()throwsJspException 在显示完标签间的文字后被执行,其返回值有EVAL_BODY_AGAIN和SKIP_BODY,EVAL_BODY_AGAIN会再显示一次标签间的文字,SKIP_BODY则继续执行标签处理的下一步

4.4 TagSupport类

TagSupport类实现IterationTag接口。它充当自定义标签处理类的基类。它还提供了一些其他方法。

点赞(0)
版权归原创作者所有,任何形式转载请联系作者; Java 技术驿站 >> JSP自定义标签-简介
上一篇
JSP的MVC开发模式
下一篇
JSP自定义标签-案例