1 / 17

自定义标签库

自定义标签库. 讲课教师:马佩勋 EMAIL : flymanma@126.com. 主要内容:. 一、自定义标签的介绍 二、标签库中的类层次结构 三、简单标签的开发. 目标. 理解自定义标签 实现简单的自定义标签. 什么是自定义标签?. <%@ taglib uri='WEB-INF/welcome.tld ‘ prefix='w' %> <html> <body> <w:HelloWorldTag /> </body> </html>. 自定义标签.

Download Presentation

自定义标签库

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 自定义标签库 讲课教师:马佩勋 EMAIL:flymanma@126.com

  2. 主要内容: • 一、自定义标签的介绍 • 二、标签库中的类层次结构 • 三、简单标签的开发

  3. 目标 • 理解自定义标签 • 实现简单的自定义标签

  4. 什么是自定义标签? <%@ taglib uri='WEB-INF/welcome.tld‘ prefix='w' %> <html> <body> <w:HelloWorldTag /> </body> </html> 自定义标签 自定义标签是遵循 <Prefix:TagFileName> 格式的标准 HTML 标签 标签处理程序文件 嵌入 Java 代码 前缀

  5. 一、自定义标签的介绍 • 1.什么是自定义标签 • 1) 用户自定义的Java语言元素, 实质是运行一个或者两个接口的JavaBean; • 2) 可以非常机密地和JSP的表示逻辑联系在一起,又具有和普通JavaBean相同的业务逻辑处理能力; • 3) 可操作默认对象,处理表单数据,访问数据库以及其它企业服务;

  6. 标签库 标签库的示例如下: • JSP 标准标签库 (JSTL) - 提供两组标签,一组使用 EL(Expression Language,表达式语言),而另一组不使用 EL • JRun 标签库 - 不再提倡使用的标签库,但是它构成 JSTL 的基础 • StrutsTagLib - 提供允许开发人员实现模型-视图-控制器 (MVC) 设计模式的标签 按照功能或实现进行分组的自定义标签的集合

  7. 一、自定义标签的介绍 • 2、JSP自定义标签的优点 • 分离了程序业务逻辑和表示逻辑 • 将Java代码从HTML中剥离,便于美工维护页面 • 提供了可重用的功能组件

  8. 3、标签处理程序的组件及其关系 标签库 标签处理程序 .java 标签库描述符 .tld 应用程序 部署描述符 web.xml JSP 页面

  9. 实现标签的类和接口的关系 实现标签必须直接 实现某个tag接口 或继承某个实现类 (interface) JspTag ↑ |ˉˉˉˉˉˉˉˉ| (interface) (interface) TagSimpleTag <——SimpleTagSupport ↑ | (interface) IterationTag <——TagSupport ↑ ↑ | | (interface) | BodyTag <——BodyTagSupport

  10. 一般不会去实现Tag接口,而是通过TagSupport类是实现了Tag的接口继承过来的字段。下列字段用作一般不会去实现Tag接口,而是通过TagSupport类是实现了Tag的接口继承过来的字段。下列字段用作 public int doStartTag(), public int doEndTag()返回值 Tag.EVAL_BODY_INCLUDE 包含主体内容Tag.SKIP_BODY不包含主体内容Tag.EVAL_PAGE包含后面的页面内容 Tag.SKIP_PAGE不包含主体的内容

  11. 自定义标签的分类 • 不带属性和主体的简单标签 • <mytaglibs:SomeTag/> • 不带主体但是有属性的标签 • <mytaglibs:SomeTag user=“John” /> • 带有主体和属性的标签 <mytaglibs:SomeTag user=“John” > Hello! </mytaglibs:SomeTag>

  12. 4、创建自定义标签-使用TagSupport类 • 自定义标签的功能:在页面上显示HelloWorld • 步骤: • ①创建TagSupport类的子类:标签处理程序HelloWorld.java • ②创建标签库描述文件mytaglib.tld • ③配置web.xml部署描述文件:指定对标签的引用

  13. Container 1: setPageContext(javax.servlet.jsp.PageContext): void 2: setParent(javax.servlet.jsp.tagext.Tag): void //3: setAttribute(): void 4: doStartTag(): void 5: doEndTag(): void 6: release(): void 5、创建自定义标签库 • 标签的生命周期: a Tag

  14. 标签库元素属性:如下

  15. tag标签相关属性:

  16. JSP 容器遇到了自定义标签 到web.xml中查找标签库描述文件的位置 到标签库描述文件中查找某个标签的处理程序 自定义标签的处理过程 <%@ taglib uri='WEB-INF/welcome.tld‘ prefix='w' %> <html> <body> <w:HelloWorldTag /> </body> </html> 创建标签处理程序的实例并将当前JSP页面的参数传递给该标签实例

  17. 总结 • 自定义标签在 JSP 页面中嵌入少量的 Java 代码 • 自定义标签遵循标准 HTML 标签格式。 • 可以通过创建 Java 类来实现自定义标签 • 使用 Java 类文件实现自定义标签,需要标签处理程序和标签库描述符文件

More Related