user3066213
user3066213

Reputation: 121

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 "

i am new to Struts.i have tried an sample struts1.x application.when i run it ,it gives an 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" my jsp page has '<%@taglib uri="http://struts.apache.org/tags-html" prefix="html" %> <%@taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>'

web page:

<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>

Upvotes: 1

Views: 15130

Answers (2)

user3787990
user3787990

Reputation:

Simply you have to check Add Struts TLDs option while creating project.
As shown below in a screen-shot. Add Struts TLDs

Add Struts TLDs: Lets you generate tag library descriptors for the Struts tag libraries. A tag library descriptor is an XML document which contains additional information about the entire tag library as well as each individual tag. In general this is not necessary, because you can refer to on-line URIs rather than local TLD files.

Upvotes: 1

spiderman
spiderman

Reputation: 11132

Try this

Include the below jar as dependency [in WEB-INF/lib]

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

In JSP page :

<%@ 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" %>

How this works: The tag library descriptor [tld] information are defined inside the “struts-taglib.jar\META-INF\tld”

You can have a look at the answer mentioned in this SO post. I have a running example there No getter method for property... error

So either you can have the jar file as dependency or add the tag library descriptors inside your WEB-INF, and configure in 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>

There is a mapping between what you configure here and the taglib you define in jsp page. The @taglib uri in the jsp page have to match with <taglib-uri> defined in web.xml

<%@ 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" %>

Upvotes: 2

Related Questions