web.xml中taglib的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了web.xml中taglib的问题相关的知识,希望对你有一定的参考价值。

写得代码也可以使用,但就是在第一个<taglib>前边出现一个红色的小叉号,怎么回事呢?请教各位大大有知道的帮忙解决一下。
这部分代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>3</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>3</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<!-- 默认首页-->
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<!--自定义标签 -->
<taglib>
<taglib-uri>/beanLib</taglib-uri>
<taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/htmlLib</taglib-uri>
<taglib-location>/WEB-INF/struts-html.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/logicLib</taglib-uri>
<taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
</taglib>

</web-app>
我在<taglib>之前加入了一对<jsp-config>解决了此问题。有没其他办法啊。

参考技术A 出现这个错误的原因是因为你所使用的版本的问题,如果使用的是2.3的版本是可以直接在<web-app>里面书写,例如:
<web-app>
<taglib-uri>/WEB-INF/cvicse-common.tld</taglib-uri>
<taglib-location>/WEB-INF/cvicse-common.tld</taglib-location>
</taglib>
</web-app>
但是楼主使用的是2.4版本的,这样的话这个标签就不能直接在<web-app>中使用了,必须如下书写:
<web-app>
<jsp-config>
<taglib-uri>/WEB-INF/cvicse-common.tld</taglib-uri>
<taglib-location>/WEB-INF/cvicse-common.tld</taglib-location>
</taglib>
</jsp-config>
</web-app>本回答被提问者采纳
参考技术B 只要程序可以跑起来!不用管那些感叹号的!他们有时只是规范你的代码书写 参考技术C xml的标签是有dtd或者scheme来定的,至于问什么要加<jsp-config>你可以把dtd弄下来看看就知道了,有空的时候可以弄本xml的书看看 参考技术D 这个是要讲究父标签和子标签的啊! 第5个回答  2008-08-05 你用的2.4的xsd,web.xml中tiglib写的地方错了,如下

<jsp-config>
<taglib>
<taglib-uri></taglib-uri>
<taglib-location></taglib-location>
</taglib>
</jsp-config>

java中jstl标签使用问题求助

我使用的:
jstl 1.1版本的
web。xml是2.3
jdk1.4
weblogic 8.16
jsp 2.0
serviet 2.4
配置如下 :
<taglib>
<taglib-uri>/fn.tld</taglib-uri>
<taglib-location>/WEB-INF/fn.tld</taglib-location>
</taglib>
//fn标签已经放到web-inf下
<%@ taglib prefix="fn" uri="/fn.tld" %>
//我在做项目的第三期 此项目用到jstl标签 我只是添加fn标签写法
web。xml中写过 c fmt 都正常
我添加fn jsp页面报错
odps/odpConstants.jsp(8): Error in using tag library uri='/fn.tld' prefix='fn': Tag Library Descriptor contains no Tag descriptions
probably occurred due to an error in /odps/odpConstants.jsp line 8:
<%@ taglib uri= "/fn.tld" prefix= "fn" %>
后台错误:
1 .<2009-4-13 上午10时56分48秒 CST> <Warning> <HTTP> <BEA-101248> <[ServletContext
id=26620531,name=odpweb,context-path=/)]: Deployment descriptor "jar:file:D:\be
816\user_projects\domains\odpdomain\.\myserver\.wlnotdelete\extract\myserver_od
web_odpweb\jarfiles\WEB-INF\lib\standard.jar!/META-INF/fn.tld" is malformed. Ch
ck against the DTD: cvc-elt.1: Cannot find the declaration of element 'taglib'.
(line 6, column 17).>

2.
=26620531,name=odpweb,context-path=/odp)] Servlet failed with Exception
weblogic.servlet.jsp.JspException: (line 8): Error in using tag library uri='/fn
.tld' prefix='fn': Tag Library Descriptor contains no Tag descriptions
at weblogic.servlet.jsp.StandardTagLib.tld_jspException(StandardTagLib.j
ava:1243)
at weblogic.servlet.jsp.StandardTagLib.parseDD(StandardTagLib.java:1267)

提示是找不到声明的文件啊
<taglib-location>/WEB-INF/fn.tld</taglib-location> 这里的/WEB-INF/fn.tld没有写错吧? 或者有没有fn.tld这个文件?提示这个tld文件有问题啊,问题很有可能出在这。
总结一下有几点可能:
1.fn.tld中tagclass有没有配好或者路径有没有弄错。
2.web.xml中<taglib-location>有没有配错tld文件,路径也看看。
3.配完了web.xml重启一下容器!
你再认真找找吧!
参考技术A 你页面中的uri不对正确,如果你是用的是tomcat那么你可以看看它为你提供的
例子,看看他是怎么使用的。在tomcat\webapps\example里

Error in using tag library uri='/fn
.tld' prefix='fn': Tag Library Descriptor contains no Tag descriptions

这是最关键的错误信息

Deployment descriptor "jar:file:D:\be
816\user_projects\domains\odpdomain\.\myserver\.wlnotdelete\extract\myserver_od
web_odpweb\jarfiles\WEB-INF\lib\standard.jar!/META-INF/fn.tld" is malformed. Ch
ck against the DTD: cvc-elt.1: Cannot find the declaration of element 'taglib'

还有这里是说在你的提供的这个standard.jar中的META-INF中的fn.tld文件
存在问题,并不应该存在taglib标记对

以上是关于web.xml中taglib的问题的主要内容,如果未能解决你的问题,请参考以下文章

为啥 <taglib> 在我的 web.xml 中给我一个问题?

添加 springsecurity.taglib.xml 时无法运行项目

web.xml_jsp-config

JSTL中的web.xml怎样配置?

java中jstl标签使用问题求助

自定义标签tld的使用