| 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">
|
 |
 |
|
|
subject: problem with the name attribute of form tag
|
|
|