首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

至于自定义标签 为什么如果在tld文件中不配置uri,只在web.xml中配置taglib-uri后在JSP中引用无效呢

2011-12-25 
关于自定义标签为什么如果在tld文件中不配置uri,只在web.xml中配置taglib-uri后在JSP中引用无效呢?关于自

关于自定义标签 为什么如果在tld文件中不配置uri,只在web.xml中配置taglib-uri后在JSP中引用无效呢?
关于自定义标签 为什么如果在tld文件中不配置uri,只在web.xml中配置taglib-uri后在JSP中引用无效呢?  

如果在tld文件中配置了uri,那直接在JSP中就可以正常引用了,那web.xml中配置taglib-uri还有什么用呢?  
第一,我不想在tld文件中配置uri
第二,我不想在JSP中直接引用tld文件的位置,
第三,我只是想引用web.xml中配置的taglib-uri。

下面是web.xml tld jsp的配置和引用,请高手指点。
1)
HelloTaglib.tld (这里我没配url,如果这里加了<uri>/mytablib</uri>则web.xml中即使不配置tablib也可以在JSP中引用该uri并正常)
<?xml version="1.0" encoding="UTF-8"?>
<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 http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
  version="2.0">
   
  <description>Custom Tag Library</description>
  <tlib-version>1.0</tlib-version>
  <short-name>mytablib</short-name>  
  <tag>
  <name>hellotab</name>
  <tag-class>com.base.tag.HelloTag</tag-class>
  <body-content>empty</body-content>
  </tag>  
</taglib>

2)
Web.xml
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
  version="2.5">

<jsp-config>
  <taglib>
  <taglib-uri>/mytablibURI</taglib-uri>
  <taglib-location>/WEB-INF/tlds/HelloTaglib.tld</taglib-location>
  </taglib>
 </jsp-config>
</web-app>


3)
JSP
<%@ page contentType="text/html;charset=gb2312" %>
<%@ taglib uri="/mytablibURI" prefix="my" %>
<html>
  <head><title><my:hellotab/></title></head>
   
  <body><my:hellotab/></body>
</html>

运行JSP后报以下错误: 提示找不到 /mytablibURI
org.apache.jasper.JasperException: JSP ファイル "/mytablibURI" が見つかりません
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:51)
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:409)
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:116)
org.apache.jasper.compiler.TagLibraryInfoImpl.<init>(TagLibraryInfoImpl.java:160)
org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:431)
org.apache.jasper.compiler.Parser.parseDirective(Parser.java:494)
org.apache.jasper.compiler.Parser.parseElements(Parser.java:1444)
org.apache.jasper.compiler.Parser.parse(Parser.java:138)
org.apache.jasper.compiler.ParserController.doParse(ParserController.java:216)
org.apache.jasper.compiler.ParserController.parse(ParserController.java:103)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:154)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:315)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:295)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:282)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:586)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)


不知道哪里出了问题呢???


------解决方案--------------------


web.xml需要引用到那个uri吧。
[解决办法]

CSS code
我以前配置的时候也是全部配置了,运行不成功。后来换了个环境就好了你上面的路径怎么还有乱码
[解决办法]
关注一下
[解决办法]
http://ltc603.javaeye.com/blog/70091

这个地方有个一

我做了一遍 完全可以运行的
[解决办法]
.tld里不需要uri啊,就用web.xml里的 可以运行··
[解决办法]
web.xml里

<jsp-config>
```````
``````
<url-pattern>*.jsp</url-pattern>
</jsp-config>

热点排行