aspose file tools*
The moose likes Struts and the fly likes problem with the name attribute of form tag Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Soft Skills this week in the Jobs Discussion forum!
JavaRanch » Java Forums » Frameworks » Struts
Bookmark "problem with the name attribute of form tag" Watch "problem with the name attribute of form tag" New topic
Author

problem with the name attribute of form tag

Amitav Anand
Ranch Hand

Joined: Sep 22, 2003
Posts: 46
I am very new to Struts..
In fact this is the first application i am trying to implement..
The exception that is being thrown is given below:

org.apache.jasper.JasperException: /index.jsp(8,0) Attribute name invalid for tag form according to TLD
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:39)
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:405)
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:234)
org.apache.jasper.compiler.Validator$ValidateVisitor.checkXmlAttributes(Validator.java:989)
org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:710)
org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1441)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2163)
org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2213)
org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2219)
org.apache.jasper.compiler.Node$Root.accept(Node.java:456)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2163)
org.apache.jasper.compiler.Validator.validate(Validator.java:1489)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:157)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:286)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:267)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:255)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:556)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:296)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:245)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

Your help is appreciated..
Thank u in advance...


Amitav Anand
David Ulicny
Ranch Hand

Joined: Aug 04, 2004
Posts: 724
Shows us the code, this means nothing without context.


SCJP<br />SCWCD <br />ICSD(286)<br />MCP 70-216
Amitav Anand
Ranch Hand

Joined: Sep 22, 2003
Posts: 46
Source code of the following files are given below:

1. index.jsp

<%@ page language="java" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<html>
<head
<title>Struts Sample</title>
</head>
<body>
<html:form action="Lookup" name="lookupForm" type="test.LookupForm">
<table width="80%" border=1>
<tr>
<td>
Symbol:</td>
<td><html:text property="symbol"/></td>
</tr>
<tr>
<td colspan="2" align="center".>
<html:submit/>
</td>
</tr>
</table>
</html:form>
</body>
</html>


2. LookupForm.java

package test;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;

public class LookupForm extends ActionForm
{
private String symbol=null;
public String getSymbol()
{
return (symbol);
}
public void setSymbol(String symbol)
{
this.symbol=symbol;
}

public void reset(ActionMapping mapping,HttpServletRequest request)
{
this.symbol=null;
}
}


3. quote.jsp

<html>
<head>
<title>
Response View</title></head>
<body>
<h1>Current Price:</h1>
<%= request.getAttribute("PRICE") %>
</body>
</html>


4. LookupAction.java
package test;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

public class LookupAction extends Action{

protected Double getQuote(String symbol)
{
if(symbol.equalsIgnoreCase("SUNW"))
{
return new Double(25.00);

}
return null;
}
public ActionForward execute(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response)throws IOException,ServletException
{
Double price=null;
//Default target to success
String target=new String("success");
if(form!=null)
{
//Use the LookupFrom to get the request parameters
LookupForm lookupForm=(LookupForm)form;
String symbol=lookupForm.getSymbol();
price=getQuote(symbol);
}
if(price==null)
{
target=new String("failure");
}
else
{
request.setAttribute("PRICE",price);
}
//Forward to the appropriate View
return (mapping.findForward(target));
}
}

5. struts-config.xml

<?xml version="1.0" encoding="ISO-8859-1" ?>
<! DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
<struts-config>
<form-beans>
<form-bean name="lookupForm" type="test.LookupForm"/>
</form-beans>
<action-mappings>
<action path="/Lookup" type="test.LookupAction" name="lookupForm">
<forward name="success" path="/quote.jsp"/>
<forward name="failure" path="/index.jsp"/>
</action>
</action-mappings>
</struts-config>




6. web.xml
<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
"http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">

<web-app>

<!-- Standard Action Servlet Configuration -->
<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>

<!-- Standard Actionservlet Mapping -->
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>

<!-- Standard Welcome File List -->
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>

<!-- Struts Tag Library Descriptors -->
<taglib>
<taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-html.tld</taglib-location>
</taglib>
</web-app>


Will be waiting for your reply..

Thanks
Amitav Anand
David Ulicny
Ranch Hand

Joined: Aug 04, 2004
Posts: 724
Check here the form tag
http://struts.apache.org/userGuide/struts-html.html#form

it has no name and type attribute.
srikanth singamsetty
Greenhorn

Joined: Sep 27, 2005
Posts: 7
<html:form action="Lookup" name="lookupForm" type="test.LookupForm">

change the above to

<html:form action="Lookup.do" name="lookupForm" type="test.LookupForm">

you need to mention the pattern in the ation

tell me if this had helped you


singamsetty
Amitav Anand
Ranch Hand

Joined: Sep 22, 2003
Posts: 46
I tried without using name and type attribute of form tag, but still its not working ...
The exception that is being thrown is given below:

javax.servlet.ServletException: Cannot find ActionMappings or ActionFormBeans collection
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:845)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:778)
org.apache.jsp.index_jsp._jspService(org.apache.jsp.index_jsp:83)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:99)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:325)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:245)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


root cause

javax.servlet.jsp.JspException: Cannot find ActionMappings or ActionFormBeans collection
org.apache.struts.taglib.html.FormTag.lookup(FormTag.java:741)
org.apache.struts.taglib.html.FormTag.doStartTag(FormTag.java:443)
org.apache.jsp.index_jsp._jspx_meth_html_form_0(org.apache.jsp.index_jsp:99)
org.apache.jsp.index_jsp._jspService(org.apache.jsp.index_jsp:70)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:99)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:325)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:245)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


Thanks

Amitav Anand
David Ulicny
Ranch Hand

Joined: Aug 04, 2004
Posts: 724
Try to change
<html:form action="/Lookup">
[ September 27, 2005: Message edited by: David Ulicny ]
Amitav Anand
Ranch Hand

Joined: Sep 22, 2003
Posts: 46
Dear Mr. srikanth singamsetty,
I changed the action attribute value from "Lookup" to "Lookup.do" in the form tag which is given below:
<html:form action="Lookup.do" name="lookupForm" type="test.LookupForm">

But still its throwing the following exception:
org.apache.jasper.JasperException: /index.jsp(8,0) Attribute name invalid for tag form according to TLD
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:39)
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:405)
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:234)
org.apache.jasper.compiler.Validator$ValidateVisitor.checkXmlAttributes(Validator.java:989)
org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:710)
org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1441)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2163)
org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2213)
org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2219)
org.apache.jasper.compiler.Node$Root.accept(Node.java:456)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2163)
org.apache.jasper.compiler.Validator.validate(Validator.java:1489)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:157)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:286)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:267)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:255)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:556)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:296)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:245)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)



I also tried using the following syntax as suggested by Mr David,but it didn't work...
<html:form action="/Lookup">
I mean it did throw the following exceptions:

javax.servlet.ServletException: Cannot find ActionMappings or ActionFormBeans collection
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:845)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:778)
org.apache.jsp.index_jsp._jspService(org.apache.jsp.index_jsp:83)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:99)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:325)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:245)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


root cause

javax.servlet.jsp.JspException: Cannot find ActionMappings or ActionFormBeans collection
org.apache.struts.taglib.html.FormTag.lookup(FormTag.java:741)
org.apache.struts.taglib.html.FormTag.doStartTag(FormTag.java:443)
org.apache.jsp.index_jsp._jspx_meth_html_form_0(org.apache.jsp.index_jsp:99)
org.apache.jsp.index_jsp._jspService(org.apache.jsp.index_jsp:70)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:99)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:325)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:245)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)




Please help me out ....


Thanks

Amitav Anand
David Ulicny
Ranch Hand

Joined: Aug 04, 2004
Posts: 724
Once again. form has no attributes name and type. Clear?
srikanth singamsetty
Greenhorn

Joined: Sep 27, 2005
Posts: 7
please try this ...

<html:form action="Lookup" name="lookupForm" type="test.LookupForm"> change to the below

final syntax is

<html:form action="/Lookup.do">
David Ulicny
Ranch Hand

Joined: Aug 04, 2004
Posts: 724
I suggest only /Lookup without do
srikanth singamsetty
Greenhorn

Joined: Sep 27, 2005
Posts: 7
you are trying to call the struts action .
and in the web.xml .the url pattern to go to struts action servlet is *.do, so you need to append .do in the action
David Ulicny
Ranch Hand

Joined: Aug 04, 2004
Posts: 724
*.do is only mapping for action servlet, actual path is taken from struts-config
There is no do.

<action path="/Lookup" type="test.LookupAction" name="lookupForm">
Amitav Anand
Ranch Hand

Joined: Sep 22, 2003
Posts: 46
Dear Mr. David,
It seems u r right as far as the syntax is concerned.
I tried only using the action attribute with the value "/Lookup", but still the same exception is being thrown...

javax.servlet.ServletException: Cannot find ActionMappings or ActionFormBeans collection
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:845)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:778)
org.apache.jsp.index_jsp._jspService(org.apache.jsp.index_jsp:83)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:99)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:325)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:245)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


root cause

javax.servlet.jsp.JspException: Cannot find ActionMappings or ActionFormBeans collection
org.apache.struts.taglib.html.FormTag.lookup(FormTag.java:741)
org.apache.struts.taglib.html.FormTag.doStartTag(FormTag.java:443)
org.apache.jsp.index_jsp._jspx_meth_html_form_0(org.apache.jsp.index_jsp:99)
org.apache.jsp.index_jsp._jspService(org.apache.jsp.index_jsp:70)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:99)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:325)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:245)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)



I also tried using "/Lookup.do" as it was suggested by Mr. Srikanta.....

Do I need to change anything in the web.xml or struts-config.xml file?

Please help me out to overcome the problem.

Regds,
Amitav Anand
Jerry
Greenhorn

Joined: Sep 29, 2005
Posts: 3
Did u try this??

<html:form action="/Lookup">
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: problem with the name attribute of form tag