I'm going to try Nial's debugging suggestion to see if I can add any more information to our discussion.
thanks for the feedback guys.
From: "David G. Friedman" <[EMAIL PROTECTED]>
Reply-To: "Struts Users Mailing List" <[email protected]>
To: "Struts Users Mailing List" <[email protected]>
Subject: RE: DynaActionForm unable to find parameter method that happens every 2-3 times
Date: Thu, 28 Apr 2005 17:04:25 -0400
Eric,
Are you ever pressing the enter/return key to submit the form instead of clicking on the "method" submit button? That could cause a submit without the method submit button being set (possibly).
Regards, David
-----Original Message----- From: Eoin Dunne [mailto:[EMAIL PROTECTED] Sent: Thursday, April 28, 2005 2:00 PM To: [email protected] Subject: DynaActionForm unable to find parameter method that happens every 2-3 times
strange error that happens every second or third time the form is
submitted. Otherwise it works? I was orignially using 1.1 struts but just
upgraded with the same issue to 1.2.4. I thinking it's a timing or
threading
issue, because of the way it works then doesn't work. The error message was
a
little better after going to struts 1.2.4. It suggested "This may be caused
by whitespace in the label text". Although this would be strange
considering
that it works then doesn't work on the next submit. The other weird thing
with this issue is that it seemed to work fine until I added a second
DynaActionForm and a second method that is mapped in the same way as
addcomponent action.
Here's the DynaActionForm in struts-config :
<form-bean name="addComponentForm" type="org.apache.struts.action.DynaActionForm"> <form-property name="componentName" type="java.lang.String" initial="" /> <form-property name="product" type="java.lang.String" /> </form-bean>
Here's the addcomponent action :
<action path="/addcomponent" name="addComponentForm" scope="session" type="com.ihs.accumap.action.AdminFunctionsAction" validate="true" parameter="method" input="/addComponent.jsp"> <forward name="addedcomponent" path="/addedcomponent.jsp"/> <forward name="failedtoaddcomponent" path="/addcomponent.jsp"/> <forward name="failure" path="/error.jsp"/> </action>
Here's most of the jsp :
<html:form action="/addcomponent"> <html:hidden name="testListForm" property="product"/> <!-- we need the product name for this component as well -->
<table VALIGN="top" cellpadding="3" cellspacing="1" WIDTH="%80" bgcolor="ffffcc" align=center> <tr> <td>Enter new component name : </td> <td><html:text size="25" name="addComponentForm" property="componentName"/></td> </tr> <td> <table align="right" bgcolor="ffffcc"> <td align="right" > <html:submit property="method"> <bean:message key="function.addcomponent"/> </html:submit> <html:reset/> </td> </tr> </table> </td> </tr> </table> </html:form> <br/> <table> <tr> <td><html:errors/></td> </tr> <tr> <td><html:messages id="mess"/></td> </tr> </table> </body> </html:html>
Here's the important bits out of my Action class:
public class AdminFunctionsAction extends LookupDispatchAction {
protected Map getKeyMethodMap() { Map map = new HashMap(); map.put("function.addtestcase", "addTestCase"); map.put("function.addproduct", "addProduct"); map.put("function.addcomponent", "addComponent"); map.put("function.deletecomponent", "removeComponent" ); return map; }
public ActionForward addComponent( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { // do add
DynaActionForm addCompForm = (DynaActionForm) form;
try{ HttpSession session = request.getSession(); UserAccountsView user = this.getUser( session );
if( user.getUserName().length() < 1 ) return (mapping.findForward("needtoauthenticate"));
ComponentService compService = this.getComponentService( session );
if ( compService.addComponent( addCompForm.get("componentName" ) + "", addCompForm.get("product") + "", user ) ) return mapping.findForward("addedcomponent" ); else return mapping.findForward("failedtoaddcomponent"); } catch( Exception x ){ x.printStackTrace(); System.out.println("Blew up trying to add component...."); return mapping.findForward("failedtoaddcomponent"); }finally{ addCompForm.set("componentName", "" ); } }
Here's the error:
javax.servlet.ServletException: Request[/addcomponent] does not contain handler parameter named 'method'. This may be caused by whitespace in the label text. at org.apache.struts.actions.DispatchAction.unspecified (DispatchAction.java:224) at org.apache.struts.actions.DispatchAction.dispatchMethod (DispatchAction.java:258) at org.apache.struts.actions.LookupDispatchAction.execute (LookupDispatchAction.java:162) at org.apache.struts.action.RequestProcessor.processActionPerform (RequestProcessor.java:421) at org.apache.struts.action.RequestProcessor.process (RequestProcessor.java:226) at org.apache.struts.action.ActionServlet.process (ActionServlet.java:1164) at org.apache.struts.action.ActionServlet.doPost (ActionServlet.java:415) at javax.servlet.http.HttpServlet.service(HttpServlet.java:716) at javax.servlet.http.HttpServlet.service(HttpServlet.java:809) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:200) at org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:146) at org.apache.catalina.core.StandardWrapperValve.invoke (StandardWrapperValve.java:209) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok eNe xt(StandardPipeline.java:596) at org.apache.catalina.core.StandardPipeline.invoke (StandardPipeline.java:433) at org.apache.catalina.core.ContainerBase.invoke (ContainerBase.java:948) at org.apache.catalina.core.StandardContextValve.invoke (StandardContextValve.java:144) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok eNe xt(StandardPipeline.java:596) at org.apache.catalina.core.StandardPipeline.invoke (StandardPipeline.java:433) at org.apache.catalina.core.ContainerBase.invoke (ContainerBase.java:948) at org.apache.catalina.core.StandardContext.invoke (StandardContext.java:2358) at org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.java:133) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok eNe xt(StandardPipeline.java:596) at org.apache.catalina.valves.ErrorDispatcherValve.invoke (ErrorDispatcherValve.java:118) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok eNe xt(StandardPipeline.java:594) at org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:116) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok eNe xt(StandardPipeline.java:594) at org.apache.catalina.core.StandardPipeline.invoke (StandardPipeline.java:433) at org.apache.catalina.core.ContainerBase.invoke (ContainerBase.java:948) at org.apache.catalina.core.StandardEngineValve.invoke (StandardEngineValve.java:127) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok eNe xt(StandardPipeline.java:596) at org.apache.catalina.core.StandardPipeline.invoke (StandardPipeline.java:433) at org.apache.catalina.core.ContainerBase.invoke (ContainerBase.java:948) at org.apache.coyote.tomcat4.CoyoteAdapter.service (CoyoteAdapter.java:152) at org.apache.coyote.http11.Http11Processor.process (Http11Processor.java:799) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConne cti on(Http11Protocol.java:705) at org.apache.tomcat.util.net.TcpWorkerThread.runIt (PoolTcpEndpoint.java:577) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run (ThreadPool.java:683) at java.lang.Thread.run(Unknown Source)
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]

