自定义标签库的问题
一个简单的自定义标签程序,可是运行起来总是出错,程序如下:
/*
* 开发标签实现类
*/
package com.jspdev.ch14;
import java.io.IOException;
import javax.servlet.jsp.JspTagException;
import javax.servlet.jsp.PageContext;
import javax.servlet.jsp.tagext.Tag;
/**
* 演示以实现Tag接口的方式来开发标签程序
*/
public class HelloTag_Interface implements Tag{
private PageContext pageContext;
private Tag parent;
public HelloTag_Interface() {
super();
}
/*
* 设置标签的页面的上下文
*/
public void setPageContext(final javax.servlet.jsp.PageContext pageContext) {
this.pageContext = pageContext;
}
/*
* 设置上一级标签
*/
public void setParent(final Tag parent) {
this.parent = parent;
}
/*
* 取得上一级标签
*/
public Tag getParent() {
return parent;
}
/*
* 开始标签时的操作
*/
public int doStartTag() throws JspTagException {
return SKIP_BODY;//返回SKIP_BODY,表示不计算标签体
}
/*
* 结束标签时的操作
*/
public int doEndTag() throws JspTagException {
try {
pageContext.getOut().write("Hello World!你好,世界!");
} catch (IOException e) {
throw new JspTagException("IO Error:"+e.getMessage());
}
return EVAL_PAGE;//容器将在标签结束时,继续计算jsp页面的其他部分
}
/*
* Release用于释放标签程序占用的资源,比如使用了数据库,那么应该关闭这个连接
*/
public void release() {
}
}
-------------------------------------------------------------------
mytag.tld
<?xml version="1.0" encoding="ISO-8859-1"?>
<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>examples</short-name>
<uri>/demotag</uri>
<description>学习标签</description>
<tag>
<description>Outputs Hello,World,从实现Tag接口起开发</description>
<name>hello_int</name>
<tag-class>com.jspdev.ch14.HelloTag_Interface</tag-class>
<body-content>empty</body-content>
</tag>
</taglib>
-------------------------------------------------------------------------
web.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>TagTest</display-name>
<taglib>
<taglib-uri>/demotag</taglib-uri>
<taglib-location>/WEB-INF/mytag.tld</taglib-location>
</taglib>
</web-app>
----------------------------------------------------------------------
jsp文件
<%@ taglib uri="/demotag" prefix="hello" %>
<%@ page contentType="text/html;charset=gb2312" language="java" %>
<html>
<head>
<title>first cumstomed tag</title>
</head>
<body>
<p>以下的内容从Taglib中显示:</p>
<p><i><hello:hello_int></i></p>
</body>
</html>