web.xml的taglib在eclipse中无效

本文介绍了在使用Struts框架时遇到的web.xml配置问题,包括如何正确配置taglib指令以避免IDE中的错误提示,提供了两种有效解决方案。

引自:http://blog.sina.com.cn/s/blog_4d109a6701007wuk.html 

把struts目录lib下的jar包复制到WebContent/WEB-INF/lib目录,eclipse自动把所有WebContent/WEB-INF/lib目录下的jar包添加到build path里,不必手动添加。在配置web.xml时,<taglib>提示错误,但是不影响struts tag的使用,错误提示为:



“Invalid content was found starting with element 'taglib'。”
但是项目哪里有那么个红叉怎么看就不爽,搜索网络,对比没有出错的web.xml,发现问题出在web.xml里的这么句话:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
<web-app id="WebApp_ID" version="2.4" 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-app_2_4.xsd">
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
第一种方法:
    删了这句(记得要保留<web-app>)红叉就不见了。
第二种方法:
    保留不变,把<taglib></taglib>用<jsp-config></jsp-config>包括起来,一样不会提示错误。
 
有搜到这样的解释:(http://www.cnblogs.com/dekn/archive/2006/01/03/310365.html)
    在jsp2.0中,且2.4版的DTD验证中,初步估计是由于eclipse在部署时,未对web.xml进行一些校验,而jbuilder则进行了校验,并除非不合法的描述符,而taglib描述符,正确写法是放到<jsp-config></jsp-config>描述符中。
    相信是一样的原因。eclipse3.2开始也对web.xml做校验,所以提示错误。在eclipse3.1.2里没有提示错误。
类型 异常报告 消息 无法在web.xml或使用此应用程序部署的jar文件中解析绝对uri:[http://java.sun.com/jsp/jstl/core] 描述 服务器遇到一个意外的情况,阻止它完成请求。 例外情况 org.apache.jasper.JasperException: 无法在web.xml或使用此应用程序部署的jar文件中解析绝对uri:[http://java.sun.com/jsp/jstl/core] org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:37) org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:270) org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:77) org.apache.jasper.compiler.TagLibraryInfoImpl.generateTldResourcePath(TagLibraryInfoImpl.java:253) org.apache.jasper.compiler.TagLibraryInfoImpl.<init>(TagLibraryInfoImpl.java:124) org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:443) org.apache.jasper.compiler.Parser.parseDirective(Parser.java:501) org.apache.jasper.compiler.Parser.parseElements(Parser.java:1458) org.apache.jasper.compiler.Parser.parse(Parser.java:144) org.apache.jasper.compiler.ParserController.doParse(ParserController.java:264) org.apache.jasper.compiler.ParserController.parse(ParserController.java:109) org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:192) org.apache.jasper.compiler.Compiler.compile(Compiler.java:365) org.apache.jasper.compiler.Compiler.compile(Compiler.java:343) org.apache.jasper.compiler.Compiler.compile(Compiler.java:329) org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:603) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:399) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:376) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:324) javax.servlet.http.HttpServlet.service(HttpServlet.java:623) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) ):注意 主要问题的全部 stack 信息可以在 server logs 里查看
最新发布
12-01
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值