
JSP自定义标签.docx
5页本文格式为Word版,下载可任意编辑JSP自定义标签 1、自定义标签的体系布局 自定义标签需要有一个相应的标签处理类,当服务器遇到自定义标签时会调用标签处理类多个自定义标签组成一个自定义标签库,标签库有一个描述文件,该描述文件对库中的标签举行声明开发自定义标签其实就是定义标签处理类和编写标签库描述文件的过程 1.1、什么是自定义标签库 JSP容器遇到标签时会执行页面转发的操作假设梦想在JSP中实现用类似于JSP标签的方式完成特定操作,可以通过自定义标签来完成 自定义标签库是自定义标签的集合 自定义标签在使用中会以下面几种形式展现: (1)简朴格式 简朴格式不带标签体、不嵌套自定义标签例如:,your为前缀,displayDate为标签名称这种标签可以带有属性,例如: ,name和type是自定义标签使用的两个属性 (2)带有标签体 自定义标签之间包含标签体,例如: Hello (3)自定义标签的嵌套使用 嵌套使用标签是指自定义标签中又使用了自定义标签,例如: 自定义标签库由一下成员组成: ???? 标签处理程序 ???? 标签库描述文件(TLD) 1、标签处理程序 自定义标签的处理功能是由标签处理程序定义的。
因此,自定义标签的开发主要是标签处理程序的开发标签处理程序的开发有固有的模范,即开发实现特定接口的Java类运行时,JSP对应的Servlet会建立本页面使用的自定义标签处理类的一个实例 标签处理类的模范由Tag接口定义假设要建立带标签体的标签处理类,可以实现BodyTag接口BodyTag接口是Tag接口的子接口 Tag接口中,主要定义的是和标签生命周期相关的方法,主要方法有: (1)当容器创造一个新的标签后,通过setPageContext方法来设置标签的页面上下文 (2)使用setParent方法设置这个标签的上一级标签,假设没有上一级嵌套,设置为null (3)设置标签的属性,这个属性在标签库描述文件中定义,假设没有定义属性,就不调用该类方法 (4)调用doStartTag方法,这个方法可以返回EVAL_BODY_INCLUDE和 SKIP_BODY,当返回EVAL_BODY_INCLUDE时,就计算标签体,假设返回SKIP_BODY时,就不计算标签体 (5)调用doEndTag方法,这个方法可以返回EVAL_PAGE和SKIP_PAGE,当返回EVAL_PAGE时,容器将在标签终止时持续计算JSP页面的其他片面,假设返回SKIP_PAGE,容器将在标签终止时中断计算JSP页面的其他片面。
(6)调用release方法释放标签处理程序占用的资源 为了简化开发,JSP模范又定义了一些辅佐类例如:Tag接口对应辅佐类为TagSupport类BodyTag接口对应BodyTagSupport类 2、标签库描述文件 标签库描述文件(Tag Library Descriptor)包含了自定义标签的描述信息它把自定义标签和对应的处理程序关联起来一个标签库对应一个标签库描述文件,一个标签库描述文件可以包含多个自定义标签的声明 1.2 1.2 mytag This taglib provides tag example repeat edu.jsp.tag.SimpleTag scriptless num true true 相应的标签处理类文件: package edu.jsp.tag; import javax.servlet.jsp.JspException; import javax.servlet.jsp.tagext.SimpleTagSupport; import java.util.HashMap; import java.io.IOException; public class SimpleTag extends SimpleTagSupport { private int num; public void doTag() throws JspException, IOException { for (int i=0; i 1.2 1.2 date This taglib provides tag to show date. displayDate my.date.DisplayDate empty 我们留心分析一下这些标签: ???? TLD文件有一个导言。
???? TLD文件的根元素是 ???? 标签库版本对应于元素 ???? 标签库所凭借的JSP技术的版本对应于元素 ???? 本标签库的前缀对应于元素 ???? 元素tag将自定义标签映射到它们的自定义标签处理程序,name设定自定义标签的名字,tag-class设定标签处理类,body-context指标签体,这里没有标签体,设为empty假设有标签体设为JSP 3、在web.xml中参与对自定义标签库的引用 web.xml文件中内容如下: date /WEB-INF/date.tld 定义的引用URI,在使用自定义标签的JSP文件中使用,指明使用的标签描述文件和相对路径 4、在JSP中使用自定义标签 首先在JSP中参与声明:格式使用 date.jsp文件内容如下: <%@ taglib uri=\ 2.2、定义有属性的标签——info JSP允许像下面这样的标签: — 5 —。
