标签:efi features script except version row png fragment ssi
对于自定义标签而言,如果我们要想使用我们自己定义的简单标签我们必须了解下面的相关类及接口的关系!这样我们就可以开发我们自己的标签库了!下面我们来看一下吧!
我们只要实现SimpleTag接口的实现类SimpleTagSupport抽象类就可以了!在此我们先来了解一下 SimpleTag 接口中定义的方法:
1 public interface SimpleTag extends JspTag { 2 3 public void doTag() 4 throws javax.servlet.jsp.JspException, java.io.IOException; 5 6 public void setParent( JspTag parent ); 7 8 public JspTag getParent(); 9 10 public void setJspContext( JspContext pc ); 11 12 public void setJspBody( JspFragment jspBody ); 13 14 15 }
以下是该接口中方法的作用:
开发自定义标签,其核心就是要编写处理器类,在我们了解过SimpleTag 接口中的方法后我们来了解一下当我们编写实现SimpleTag接口的标签处理器类后,其生命周期是是怎样的(即:方法的执行顺序)?
我们了解了标签处理器类后,我们下面来了解一下标签库描述文件
下面就是tld文件的部分内容:
1 <?xml version="1.0" encoding="UTF-8" ?> 2 <!-- DTD约束引用--> 3 <taglib xmlns="http://java.sun.com/xml/ns/javaee" 4 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 5 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd" 6 version="2.1"> 7 <!-- tld 文件的描述信息--> 8 <description>JSTL 1.2 core library</description> 9 <display-name>JSTL core</display-name> 10 <tlib-version>1.2</tlib-version> 11 <short-name>c</short-name> 12 <uri>http://java.sun.com/jsp/jstl/core</uri> 13 <validator> 14 <description> 15 Provides core validation features for JSTL tags. 16 </description> 17 <validator-class> 18 org.apache.taglibs.standard.tlv.JstlCoreTLV 19 </validator-class> 20 </validator> 21 <!-- 在 tag 标签中定义的我们的自定义标签--> 22 <tag> 23 <description> 24 Catches any Throwable that occurs in its body and optionally 25 exposes it. 26 </description> 27 <!-- 自定义标签的名字--> 28 <name>catch</name> 29 <!-- 自定义标签的处理器类全类名--> 30 <tag-class> 31 org.apache.taglibs.standard.tag.common.core.CatchTag 32 </tag-class> 33 <!-- 自定义标签的标签体的内容类型:在2.0版本中只有empty、scriptless、tagdependent 三种类型,但到了2.1版本后加了 JSP 类型,更加丰富了标签体的灵活性。 34 – empty:没有标签体 35 – scriptless:标签体可以包含 el 表达式和 JSP 动作元素,但不能包含 JSP 的脚本元素 36 – tagdependent:表示标签体交由标签本身去解析处理。若指定 tagdependent,在标签体中的所有代码都会原封不动的交给标签处理器,而不是将执行结果传递给标签处理器 37 – JSP:接受所有JSP语法,如定制的或内部的tag、scripts、静态HTML、脚本元素、JSP指令和动作。 38 --> 39 <body-content>JSP</body-content> 40 <!-- 在attribute标签中定义自定义标签的属性--> 41 <attribute> 42 <description> 43 Name of the exported scoped variable for the 44 exception thrown from a nested action. The type of the 45 scoped variable is the type of the exception thrown. 46 </description> 47 <!-- 自定义标签属性的名字--> 48 <name>var</name> 49 <!-- 自定义标签属性是不是必须的,取值可以有true|false|yes|no--> 50 <required>false</required> 51 <!--该属性 rtexprvalue 的全拼是 runtime expression value 运行时表达式值!该属性表示是否可以接受运行时表达式的值。 可以填的值 yes|false|true|no --> <rtexprvalue>false</rtexprvalue> 52 </attribute> 53 </tag> 54 </taglib>
这样我们就可以在我们的JSP页面中引用我们自己定义的标签了!
<%@ taglib prefix=“” uri=“” %>
标签:efi features script except version row png fragment ssi
原文地址:http://www.cnblogs.com/Vincent-NMT/p/6123547.html