【问题标题】:TagLib tag in web.xml is not found ERROR未找到 web.xml 中的 TagLib 标记 错误
【发布时间】:2011-10-24 17:32:52
【问题描述】:

我将错误详细显示如下。

 cvc-complex-type.2.4.a: Invalid content was found starting with element 'taglib'. One of '{"http://java.sun.com/xml/ns/javaee":description,"http://java.sun.com/xml/ns/javaee":display-name, "http://java.sun.com/xml/ns/javaee":icon,"http://java.sun.com/xml/ns/javaee":distributable"http:// java.sun.com/xml/ns/javaee":context-param, "http://java.sun.com/xml/ns/javaee":filter, "http://
 java.sun.com/xml/ns/javaee":filter-mapping, "http://java.sun.com/xml/ns/javaee":listener,"http:// java.sun.com/xml/ns/javaee":servlet, "http://java.sun.com/xml/ns/javaee":servlet-mapping, "http://java.sun.com/xml/ns/javaee":session-config, "http://java.sun.com/xml/ns/javaee":mime-mapping, 
 "http://java.sun.com/xml/ns/javaee":welcome-file-list, "http://java.sun.com/xml/ns/javaee":error-
 page, "http://java.sun.com/xml/ns/javaee":jsp-config, "http://java.sun.com/xml/ns/javaee":security-
 constraint, "http://java.sun.com/xml/ns/javaee":login-config, "http://java.sun.com/xml/ns/
 javaee":security-role, "http://java.sun.com/xml/ns/javaee":env-entry, "http://java.sun.com/xml/ns/
 javaee":ejb-ref, "http://java.sun.com/xml/ns/javaee":ejb-local-ref, "http://java.sun.com/xml/ns/
 javaee":service-ref, "http://java.sun.com/xml/ns/javaee":resource-ref, "http://java.sun.com/xml/ns/
 javaee":resource-env-ref, "http://java.sun.com/xml/ns/javaee":message-destination-ref, "http://
 java.sun.com/xml/ns/javaee":persistence-context-ref, "http://java.sun.com/xml/ns/
 javaee":persistence-unit-ref, "http://java.sun.com/xml/ns/javaee":post-construct, "http://
 java.sun.com/xml/ns/javaee":pre-destroy, "http://java.sun.com/xml/ns/javaee":message-
 destination, "http://java.sun.com/xml/ns/javaee":locale-encoding-mapping-list}' is expected.

添加 web.xml

  <?xml version="1.0" encoding="UTF-8"?>
  <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">

<display-name>Hello World Struts Application</display-name>

<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>1</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>/WEB-INF/struts-html.tld</taglib-uri>
    <taglib-location>/WEB-INF/struts-html.tld</taglib-location>
</taglib>

<taglib>
    <taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>
    <taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
</taglib>

<taglib>
    <taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri>
    <taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
</taglib>

<taglib>
    <taglib-uri>/WEB-INF/struts-tiles.tld</taglib-uri>
    <taglib-location>/WEB-INF/struts-tiles.tld</taglib-location>
</taglib>

</web-app>

【问题讨论】:

  • 您是否检查了 dtd 或 xsd 以了解元素必须处于的顺序?在意识到在许多模式中元素的顺序不是任意的(尽管它们非常独立)之前,我也为此苦苦挣扎。
  • @beny:我添加了 web.xml 代码。请帮我一个忙。

标签: java struts taglib


【解决方案1】:

taglib 不再需要在 web.xml 中声明,请阅读http://wiki.metawerx.net/wiki/RemovingTaglibFromWeb.xml

您使用的是 Servlet 2.5,因此说明应该适合您

【讨论】:

    【解决方案2】:

    修改您的 web.xml 以便所有 taglib 标记都包含在 jsp-config 标记中。即:

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

    【讨论】:

    • 在taglib 之前,有一个标签。我正在尝试,但无法在我的答案中写出来。它没有显示任何内容。
    【解决方案3】:

    //在:web.xml 文件中

    http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" 版本="3.1">

    <jsp-config>
        <taglib>
            <taglib-uri>/taglib</taglib-uri>
            <taglib-location>/WEB-INF/tlds/taglib.tld</taglib-location>
        </taglib>
    </jsp-config>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-27
      • 1970-01-01
      • 2011-03-27
      相关资源
      最近更新 更多