Topic: 拿什么拯救你,我的tld文件。

  Print this page

1.拿什么拯救你,我的tld文件。 Copy to clipboard
Posted by: nogod
Posted on: 2005-02-02 08:53

<?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>
<tlibversion>1.0</tlibversion>
<jspversion>1.1</jspversion>
<shortname>tagclass</shortname>
<tag>
<name>login</name>
<tagclass>test.login</tagclass>
<info></info>
<attribute>
<name>height</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>width</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>

</tag>
</taglib>
jsp:文件引用的:

<%@ taglib uri="/WEB-INF/tlds/MyTaglib.tld" prefix="tagclass" %>
<tagclass:login width="200" height="100">
</tagclass:login>
错误:
XML parsing error on file /WEB-INF/tlds/MyTaglib.tld: (line 1, col -1): 缺少文件根组件。

所有的路径,引用的名称都没写错啊。可就是报这样的错,是什么原因啊,我也是刚刚开始学jsp表示符,看着有tag.还有tld,难道我的这个tld换需要个tag文件吗。。哪个高人来说说啊。拜托了。

2.Re:拿什么拯救你,我的tld文件。 [Re: nogod] Copy to clipboard
Posted by: xiaoyun5109
Posted on: 2005-02-26 20:38

我也是刚学的JSP,我觉得你的<taglib>元素下 少了个<uri>元素:
<uri>/mytaglib</uri>
还有 就是要在web.xml文件中加入<taglib>元素:
<taglib>
<taglib-uri>/mytaglib</taglib-uri>
<taglib-location>/WEB-INF/mytaglib.tld</taglib-location>
</taglib>
还有在jsp文件中引用:
<%@ taglib uri="/mytaglib" prefix="tagclass"%>
把mytaglib.tld文件放在/WEB-INF 目录下就应该可以了,还有就是别忘了把处理tag标签的.class文件放到/WEB-INF/classes目录下去。

以上是我初学的,不对的请指正一下.

3.Re:拿什么拯救你,我的tld文件。 [Re: nogod] Copy to clipboard
Posted by: 孤独王子
Posted on: 2005-02-26 23:01

uri直接指定了 tld 还需要 夹在web.xml中么?

4.Re:拿什么拯救你,我的tld文件。 [Re: nogod] Copy to clipboard
Posted by: xiaoyun5109
Posted on: 2005-02-26 23:38

好象WEB应用的信息发布都是要通过web.xml文件来配置,
这点不也不特别肯定,只是我觉得是那样的
有能肯定的高手请指明……

5.Re:拿什么拯救你,我的tld文件。 [Re: nogod] Copy to clipboard
Posted by: 孤独王子
Posted on: 2005-02-27 00:27

uri直接指定了 tld 还需要 夹在web.xml中么?

6.Re:拿什么拯救你,我的tld文件。 [Re: 孤独王子] Copy to clipboard
Posted by: bluepure
Posted on: 2005-02-27 01:49

"http://java.sun.com/j2ee/dtds/web"-jsptaglibrary_1_1.dtd">
^^^^

你多写了一个双引号,你的开头信息写错了吧???

<?xml version="1.0" encoding="GB2312"?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
  "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">

7.Re:拿什么拯救你,我的tld文件。 [Re: nogod] Copy to clipboard
Posted by: 孤独王子
Posted on: 2005-02-27 11:25

测试了一早晨关于最小可能跑起来taglib的问题,可能是这样结论
关于struts 自带的html logic 等标记库
直接吧那8各*.jar包加进去

按照html:标签举例

在引用页面 <%@ taglib uri="mql" prefix="html" %>
这里的mql跟web.xml uri指定的应该完全匹配 ,prefix 必须不能更改
如果是html标记,就必须是html,因为这标签的实现,已经在.jar里面
如果换成htm前缀,就无法识别了

web.xml <taglib>
<taglib-uri>mql</taglib-uri>
<taglib-location>/struts-html.tld</taglib-location>
</taglib>

这里mql就是引用页完全匹配的东西 taglib-location 就是存放.tld文件的位置
按照这个网战的根目录算起,这样写 就是放在了 根目录下面,tld文件并不是必须放在WEB-INF下面,虽然常常这样做。写对了路径就可以了,需要注意的一点是,struts-html.tld这个文件名字一定不能更改,改称 html.tld 并且把对应的文件盖了,是无法识别的

这就是标记库最小运行环境结论,如果有错误,请高手指出

8.Re:拿什么拯救你,我的tld文件。 [Re: nogod] Copy to clipboard
Posted by: 孤独王子
Posted on: 2005-02-28 15:17

如果是自定义的标记库,就不是一定需要struts带的jar包
,相反的,自定义标记久一定要把标记库的class文件搞上去
其余相同


   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923