自定义TAG问题
我自己定义了一个标签:
<?xml version="1.0" ?>
<taglib>
<tlibversion>1.0</tlibversion>
<jspversion>1.1</jspversion>
<shortname>diag</shortname>
<tag>
<name>getWebServer</name>
<tagclass>testjsp.GetWebServerTag</tagclass>
<bodycontent>empty</bodycontent>
</tag>
</taglib>
然后在JSP中引用 :
<%@ page contentType="text/html; charset=GBK" %>
<%@ taglib prefix="diag" uri="testTag.tld" %>
结果编译时提示错误:
"jsp1.jsp": org.apache.jasper.JasperException: XML parsing error on file /testTag.tld: (line 2, col -1): 组件类型“taglib”未被声明。
谁能告诉我是什么原因呀?
问题点数:100、回复次数:6Top
1 楼opentuxedo(借哥哥的号来试试)回复于 2003-08-01 18:25:35 得分 0
^Top
2 楼LoveTide(say no to ISO-8859-1、CVS)回复于 2003-08-01 18:42:53 得分 30
要加 DOCTYPE 吧。。。
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!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>
.....
Top
3 楼bruni(不如你)回复于 2003-08-01 18:46:24 得分 10
要把tld放到classpath中
然后在uri中引用. 比如uri='WEB-INF/tld/testTag.tld'Top
4 楼luckyfanjian(luckyfan)回复于 2003-08-01 18:50:12 得分 10
你定义完成后的标签的tld文件,要放在你的应用的web-inf/目录下
<%@ taglib prefix="getWebServer" uri="WEB-INF/getWebServer.tld" %>
prefix的名称最好和定义的相同!
另外有三种标签,用法也不相同,要注意你的事哪一种标签,怎么用!
在web.xml文件中要部署上你的tld文件
如:
<web-app>
<taglib>
<taglib-uri>getWebServer</taglib-uri>
<taglib-location>/WEB-INF/getWebServer.tld</taglib-location>
</taglib>
</web-app>
<tagclass>GetWebServerTag</tagclass>Top
5 楼Tongates( )回复于 2003-08-01 20:33:13 得分 50
支持LoveTide(一个月挣多少钱知足?) 的说法。
你用的web服务器中对tld文件的默认有效性检查可能版本比较高,它认识<tag-lib>,而不认识<taglib>,因此不加有效性检查,就有可能出错。
实际上,我以前做的tld文件都不用<!DOCTYPE>这个的,后来在移植的过程中也发觉了同样的错误,加了有效性检查才搞定。
兄弟加油Top
6 楼zangzhch(完全电脑白痴)回复于 2003-08-01 20:48:17 得分 0
试一个更高版本的Tomcat。Top




