<?xml version="1.0" encoding="UTF-8"?>
<web-app 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">//不一样的  <servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>mypack.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
   </servlet>   <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>/dispatcher</url-pattern>
   </servlet-mapping>
 <taglib>(这里为什么个有大红叉)
    <taglib-uri>/mytaglib</taglib-uri>
    <taglib-location>/WEB-INF/mytaglib.tld</taglib-location>
  </taglib></web-app>
但下面这些为什么对的:<?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE web-app PUBLIC
  '-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN'
  'http://java.sun.com/j2ee/dtds/web-app_2_3.dtd'>//不一样的<web-app>  <servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>mypack.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
   </servlet>   <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>/dispatcher</url-pattern>
   </servlet-mapping>
 <taglib>
    <taglib-uri>/mytaglib</taglib-uri>
    <taglib-location>/WEB-INF/mytaglib.tld</taglib-location>
  </taglib></web-app>
这两个只是我标记的了地方不一样,问题在哪!是标记那有问题?但上面一个我是在Myeclispe中自己生成的,只是加个<taglib>就不对,web中有<taglib>这个标签的啊!

解决方案 »

  1.   

    web-app   version="2.4"      下边的是2.3
      

  2.   

    如2楼所述,XML 的 version 不一样, validator rule 也不一样 
      

  3.   

    2.4和2.3都应该对<taglib>支持吧!怎么会出错啊?请略详解!
      

  4.   

    我已经试过了,确实是2.4不支持<taglib>标签下面是在MyEclipse中的报错信息,楼主可以看一下:
    cvc-complex-type.2.4.a: Invalid content was found starting with element 
     'taglib'. One of '{"http://java.sun.com/xml/ns/j2ee":description, "http://
     java.sun.com/xml/ns/j2ee":display-name, "http://java.sun.com/xml/ns/j2ee":icon, 
     "http://java.sun.com/xml/ns/j2ee":distributable, "http://java.sun.com/xml/ns/
     j2ee":context-param, "http://java.sun.com/xml/ns/j2ee":filter, "http://
     java.sun.com/xml/ns/j2ee":filter-mapping, "http://java.sun.com/xml/ns/
     j2ee":listener, "http://java.sun.com/xml/ns/j2ee":servlet, "http://java.sun.com/
     xml/ns/j2ee":servlet-mapping, "http://java.sun.com/xml/ns/j2ee":session-config, 
     "http://java.sun.com/xml/ns/j2ee":mime-mapping, "http://java.sun.com/xml/ns/
     j2ee":welcome-file-list, "http://java.sun.com/xml/ns/j2ee":error-page, "http://
     java.sun.com/xml/ns/j2ee":jsp-config, "http://java.sun.com/xml/ns/
     j2ee":security-constraint, "http://java.sun.com/xml/ns/j2ee":login-config, 
     "http://java.sun.com/xml/ns/j2ee":security-role, "http://java.sun.com/xml/ns/
     j2ee":env-entry, "http://java.sun.com/xml/ns/j2ee":ejb-ref, "http://
     java.sun.com/xml/ns/j2ee":ejb-local-ref, "http://java.sun.com/xml/ns/
     j2ee":service-ref, "http://java.sun.com/xml/ns/j2ee":resource-ref, "http://
     java.sun.com/xml/ns/j2ee":resource-env-ref, "http://java.sun.com/xml/ns/
     j2ee":message-destination-ref, "http://java.sun.com/xml/ns/j2ee":message-
     destination, "http://java.sun.com/xml/ns/j2ee":locale-encoding-mapping-list}' 
     is expected.
      

  5.   

    那在2.4版中是不有没办法用<tablib>了,有什么办法可用吗?
      

  6.   

    2.4中使用<taglib>的方法:在<taglib>外面加上<jsp-config>  2.3中可以直接写:
      
      <taglib> 
          <taglib-uri> /mytaglib </taglib-uri> 
          <taglib-location> /WEB-INF/mytaglib.tld </taglib-location> 
      </taglib>
        2.4中要写成:
      
      <jsp-config>
          <taglib> 
              <taglib-uri> /mytaglib </taglib-uri> 
              <taglib-location> /WEB-INF/mytaglib.tld </taglib-location> 
          </taglib>
      </jsp-config>