关于tablib的问题,请帮忙!
这是demo.jsp文件:
---------------------------------------------------------------------
<%@ taglib uri="WEB-INF/diagnostics.tld" prefix="diag" %>
<%@ page import="test.GetWebServerTag, java.util.*"%>
<html>
<head>
<title>Taglib</title>
</head>
<body>
<h3>Basic Example of a custom Tag</h3>
The Web server is
<h1><diag:getWebServer></h1>
</body>
</html>
--------------------------------------------------------------------
运行出现以下错误:
----------------------------------------------------------------------
org.apache.jasper.JasperException: /demo.jsp(8,23) No such tag getWebServer in the tag library imported with prefix diag
-----------------------------------------------------------------------
如果去掉其中的<h1><diag:getWebServer></h1>这行,可以正常运行,无显示。
以下为java源代码,已经正常编译了。
-------------------------------------------------------------
package test;
import javax.servlet.http.*;
import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;
import java.io.*;
import java.net.*;
public class GetWebServerTag extends TagSupport
{
public int doStartTag() throws JspException{
try{
HttpServletRequest request = (HttpServletRequest) pageContext.getRequest();
URL url = new URL("http",request.getServerName(),request.getServerPort(),"/");
URLConnection con = url.openConnection();
((HttpURLConnection)con).setRequestMethod("OPTIONS");
String webserver = con.getHeaderField("server");
JspWriter out = pageContext.getOut();
out.print(webserver);
}
catch (IOException e){
throw new JspException(e.getMessage());
}
return SKIP_BODY;
}
};
---------------------------------------------------------------
可知tld文件是没有错误的,因此就不贴出来了,想请问一下,为什么会出现那样的错误提示呢?该怎么样修改,第一次用taglib,没想到这么复杂。
问题点数:40、回复次数:6Top
1 楼jsyx()回复于 2003-12-04 17:43:48 得分 10
<diag:getWebServer />
没加 /
Top
2 楼rainy14f(Java要从娃娃抓起)回复于 2003-12-04 18:09:00 得分 20
你显示的错误表明,在你引入的标志库里没有getWebServer这个标志。
你先检查一下,在你的TLD文件里,这个tag的名字是不是定义对了?比如:
<taglib>
...
<tag>
<name>getWebServer</name> ------这里定义你的tag的名字
<tag-class>GetWebServerTag</tag-class> ----这个tag的实现类
..
</tag>
..
</taglib>Top
3 楼gong1(轻松编程)回复于 2003-12-04 18:13:52 得分 10
没有加/
Top
4 楼WebLearner(学者)回复于 2003-12-04 19:12:07 得分 0
补Top
5 楼WebLearner(学者)回复于 2003-12-04 19:14:35 得分 0
补充一下我加了<h1><diag:getWebServer /></h1>之后仍然是一样的错误,下面是.tld文件的源代码:
----------------------------------------------------------------------
<?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>diag</shortname>
<uri>http://jakarta.apache.org/taglibs/display</uri>
<info>Display Tag Library</info>
<tag>
<name>table</name>
<tagclass>test.GetWebServerTag</tagclass>
<bodycontent>empty</bodycontent>
</tag>
</taglib>
--------------------------------------------------------------------------
为什么错误依旧?
Top
6 楼WebLearner(学者)回复于 2003-12-04 19:17:06 得分 0
我看到了,原来是<name>table</name>
写错了。应该是<name>getWebServer</name>
Top




