1。删掉<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">。2。<taglib>
        <taglib-uri>http://java.sun.com/jstl/core</taglib-uri>
        <taglib-location>/WEB-INF/tlds/c.tld</taglib-location>
    </taglib>
改为
<taglib>
    <taglib-uri>/WEB-INF/jstl-core.tld</taglib-uri>
    <taglib-location>/WEB-INF/c.tld</taglib-location>
  </taglib>

解决方案 »

  1.   

    <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"><web-app>错了,http://java.sun.com/jsp/jstl/core引用的是JSTL1.1,它需要引用servlet2.4容器(Tomcat5.0)以上)的DTD文件
    把DOCTYPE去掉,将<web-app>改成
    <web-app 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 web-app_2_4.xsd"
        version="2.4">
      

  2.   

    另外在web.xml文件中不需要引入 
    <taglib>
    <taglib-uri>http://java.sun.com/jstl/core</taglib-uri>
    <taglib-location>/WEB-INF/tlds/c.tld</taglib-location>
    </taglib>
      

  3.   

    当然,如果.tld文件存在不同的目录下,还是要引一下的
      

  4.   

    <web-app 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 web-app_2_4.xsd"
        version="2.4">
    我把这段代码加上以后IDEA就报错了 ,下面的代码变红了
    另外我把<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
    去掉了TOMCAT报错:org.xml.sax.SAXParseException: Document root element "web-app", must match DOCTYPE root "null".
      

  5.   

    我现在的TOMCAT的版本是4.1的
    我按照上面的说的都试过了 都不行啊!
    哪位高人再指点一下把 谢谢了!