开发和使用JSP自定义标签过程:
1.开发标签实现类.
HelloTag_Interface.java文件内容:
import
javax.servlet.jsp.tagext.Tag;
import
javax.servlet.jsp.PageContext;
import
javax.servlet.jsp.JspException;
import
java.io.
*
;
import
javax.servlet.jsp.JspTagException;

/** */
/**
* 以实现Tag接口的方式来开发标签程序
*/
public
class
HelloTag
implements
Tag
...
{
private PageContext pageContext;
private Tag parent;

public HelloTag()...{
super();
}

/** *//**
* 设置标签的页面上下文
* @param pageContext
*/
public void setPageContext(PageContext pageContext) ...{
this.pageContext=pageContext;
}

/** *//**
* 设置上一级标签
* @param t
*/
public void setParent(Tag parent) ...{
this.parent=parent;
}

public Tag getParent() ...{
return this.parent;
}

/** *//**
* 开始标签时的操作
* @return
* @throws JspException
*/
public int doStartTag() throws JspException ...{
return this.SKIP_BODY;//返回SKIP_BODY,表示不计算标签体
}

/** *//**
* 结束标签时的操作
* @return
* @throws JspException
*/
public int doEndTag() throws JspException ...{
try ...{
pageContext.getOut().write("Hello World!");
}
catch (IOException ex) ...{
throw new JspTagException("IO Error:"+ex.getMessage());
}
return this.EVAL_PAGE;
}

/** *//**
* Release 用于释放标签程序占用的资源,比如使用了数据库连接,那么应该关闭这个连接
*/
public void release() ...{
}
}

2.编写标签库描述.
在WEB-INF/目录下新创建一个mytag.tld文件:
<?
xml version="1.0" encoding="GBK"
?>
<
taglib
xmlns
="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation
="http://java.sun.com/xml/ns/j2ee web-jsptaglibrary_2_0.xsd"
version
="2.0"
>
<
description
>
A tag library exercising SimpleTag handlers.
</
description
>
<
tlib-version
>
1.0
</
tlib-version
>

<
short-name
>
my
</
short-name
>
<
uri
>
/mytag
</
uri
>
<
description
>
学习标签
</
description
>

<
tag
>
<
description
>
输出Hello World
</
description
>
<
name
>
hello
</
name
>
<
tag-class
>
HelloTag
</
tag-class
>
<
body-content
>
empty
</
body-content
>
</
tag
>
</
taglib
>

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
<taglib>
<tlibversion>1.0</tlibversion>
<jspversion>1.1</jspversion>
<shortname>my</shortname>
<uri>/mytag</uri>
<tag>
<name>hello</name>
<tagclass>com.yourcompany.struts.tags.HelloTag</tagclass>
<bodycontent>empty</bodycontent>
</tag>
</taglib>
3.配置自定义标签到工程中.
在web.xml文件里添加:
<
web-app
>
...
<
taglib
>
<
taglib-uri
>
/mytag
</
taglib-uri
>
<
taglib-location
>
/WEB-INF/mytag.tld
</
taglib-location
>
</
taglib
>
...
</
web-app
>
<jsp-config>
<taglib>
<taglib-uri>/mytag</taglib-uri>
<taglib-location>/WEB-INF/mytag.tld</taglib-location>
</taglib>
</jsp-config>
4.在JSP文件中使用自定义标签.
编写mytag.jsp文件:
<%
...
@ taglib uri="/mytag" prefix="my"
%>

<%
...
@ page contentType="text/html;charset=GBK" language="java"
%>
<
html
>
<
head
>
<
title
>
first tag
</
title
>
<
meta
http-equiv
="Content-Type"
content
="text/html;charset=GBK"
>
</
head
>
<
body
>
<
p
>
以下的内容从Taglib中输出显示:
</
p
>
<
p
><
my:hello /
></
p
>
</
body
>
</
html
>
本文介绍如何通过实现Tag接口来开发JSP自定义标签,包括标签实现类的编写、标签库描述文件的配置及在JSP文件中的使用。
475

被折叠的 条评论
为什么被折叠?



