自定义标识的实现的步骤
自定义标识的制作时必须实现的步骤
1.新建一个类他派生自Tag或TagSupport
2.在新建的这个类里面必须的函数有:
doStartTag()throws JspException
和
doEndTag()throws JspException
一般的代码都写在doStartTag()里面的
注:如果你的类是派生自Tag的话则必须声明setPageContext,setParent
getParent,doStartTag,doEndTag release方法而TagSupport则只要
doStartTag,doEndTag方法就行了.
3.创建*.tld文件放在WEB-INF目录下:
其内容必须有如下的格式:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE taglib
PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
"http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
<taglib>
<tlib-version>1.0</tlib-version>
<jsp-version>1.1</jsp-version>
<short-name>mytag标识</short-name>
<uri></uri>
<tag>
<!--定义hello的标识名字-->
<name>hello</name>
<!--定义hello标识的关联类-->
<tag-class>tags.HelloTag</tag-class>
<body-content>empty</body-content>
</tag>
</taglib>
注:tags.HelloTag 中 tags:包名 HelloTag:类名
4.配置*.XML文件
其内容必须有:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<display-name>mytag</display-name>
<taglib>
<taglib-uri>/WEB-INF/*.tld</taglib-uri>
<taglib-location>/WEB-INF/*.tld</taglib-location>
</taglib>
</web-app>
注:/WEB-INF/*.tld 中 *为tld名
5.建一个jsp文件在开始声明如下:
<%@ taglib uri="WEB-INF/mytaglib.tld" prefix="mytag" %>
在使用这个mytag标签
<mytag:hello/>
其中属性hello在*.tld中定义的:
<tag>
<!--定义hello的标识名字-->
<name>hello</name>
<!--定义hello标识的关联类-->
<tag-class>tags.HelloTag</tag-class>
<body-content>empty</body-content>
</tag>
它的属性名为:hello
处理它的类为:tags.HelloTag
它的主体内容为:empty
6:在doStartTag和doEndTag中的返回值:
* SKIP_BODY: 表示该标识不包括JSP文件的内容处理
* SKIP_PAGE: 表示该标识不检查剩余的JSP内容,
EVAL_PAGE:是指不销毁(交给Garbage Collection)放回池中回收利用.
7. <attribute>:标识定义传入参数名字
例:
<tag>
<name>helloparam<name>
<tag-class>tags.HelloTagParam<tag-class>
<body-content>empty</body-content>
<attribute>
<name>param1</name>
</attribute>
</tag>
则:在处理类里就有要有一个setParam()方法和一个成员变量param1。
<required>标识定义该参数是否是helloparam标识必须声明的参数
8.取得标识之间的内容类:
BodyContent bodyContent;
setBodyContent(BodyContent bodyContent)
{
this.bodyContent = bodyContent;
}
浙公网安备 33010602011771号