【问题标题】:Error "The absolute uri: http://struts.apache.org/tags-html cannot be resolved in either web.xml or the jar files deployed with this application "错误“绝对 uri:http://struts.apache.org/tags-html 无法在 web.xml 或随此应用程序部署的 jar 文件中解析”
【发布时间】:2014-02-15 04:34:20
【问题描述】:

我是 Struts 的新手。我尝试了一个示例 struts1.x 应用程序。当我运行它时,它给出了一个错误

绝对 uri:http://struts.apache.org/tags-html 无法在 web.xml 或随此应用程序部署的 jar 文件中解析”我的 jsp 页面有 ' '

网页:

<html>
  <body>
    <center>
      <html:errors/>
      <html:form action="login">
        <bean:message key="label.uname"/>
        :
        <html:text property="uname"/>
        <br> 
        <bean:message key="label.pwd"/>
        :
        <html:text property="pwd"/>
        <br> 
        <html:submit value="LOGIN"/>
      </html:form>
    </center>
  </body>
</html>

web.xml:

<web-app>
  <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>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>Action</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>
</web-app>

【问题讨论】:

    标签: web.xml struts-config struts-1


    【解决方案1】:

    试试这个

    将以下 jar 包含为依赖项 [in WEB-INF/lib]

     struts-taglib.jar [any version, eg: struts-taglib-1.3.10.jar]
    

    在 JSP 页面中:

    <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
    <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
    <%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>
    

    这是如何工作的:标签库描述符 [tld] 信息在“struts-taglib.jar\META-INF\tld”中定义

    您可以查看此 SO 帖子中提到的答案。我有一个正在运行的例子 No getter method for property... error

    因此,您可以将 jar 文件作为依赖项,也可以在 WEB-INF 中添加标签库描述符,并在 web.xml 中进行配置

    web.xml

    <taglib>
         <taglib-uri>
          http://struts.apache.org/tags-bean
         </taglib-uri>
         <taglib-location>
          /WEB-INF/struts-bean.tld
         </taglib-location>
    </taglib>
    <taglib>
         <taglib-uri>
          http://struts.apache.org/tags-html
         </taglib-uri>
         <taglib-location>
          /WEB-INF/struts-html.tld
         </taglib-location>
    </taglib>
    <taglib>
         <taglib-uri>
          http://struts.apache.org/tags-logic
         </taglib-uri>
         <taglib-location>
          /WEB-INF/struts-logic.tld
         </taglib-location>
    </taglib>
    

    您在此处配置的内容与您在 jsp 页面中定义的 taglib 之间存在映射关系。 jsp页面中的@taglib uri必须与web.xml中定义的&lt;taglib-uri&gt;匹配

    <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
    <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
    <%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>
    

    【讨论】:

      【解决方案2】:

      您只需在创建项目时选中添加 Struts TLD 选项。
      如下图所示。

      添加 Struts TLD:让您为 Struts 标记库生成标记库描述符。标记库描述符是一个 XML 文档,其中包含有关整个标记库以及每个单独标记的附加信息。一般来说,这不是必需的,因为您可以参考在线 URI 而不是本地 TLD 文件。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-05-14
        • 1970-01-01
        • 2012-01-31
        • 2014-05-23
        • 2013-10-21
        相关资源
        最近更新 更多