Did you place your form-bean inside form-beans?
<form-beans> <form-bean name="CustForm" type="org.apache.struts.action .DynaActionForm" dynamic="true"> <form-property name="custName" type="java.lang.String"/> <form-property name="typeName" type="java.lang.String"/> <form-property name="typeNameDesc" type="java.lang.String"/> <form-property name="confirm" type="java.lang.boolean" initial="true"/> </form-bean> </form-beans> On 11/17/05, Laurie Harper <[EMAIL PROTECTED]> wrote: > > What you have below looks right to me; the action mapping has 'name' set > to your action form, so you should be getting an instance of it in the > action. Double check you haven't gotten your config out of sync along > the way. > > L. > > fea jabi wrote: > > thanks for your response. Understood better now. > > > > I am not sure why but the setupForm is null in the Action when debugged > > thru the code. > > > > DynaActionForm setupForm = (DynaActionForm) form; > > > > System.out.println("In PrepareSetupAction : setupform is : " + > setupForm); > > > > > > Any idea of why it's so? Is there anything else I have to do? > > > > Thanks. > > > > > >> From: Laurie Harper <[EMAIL PROTECTED]> > >> Reply-To: "Struts Users Mailing List" <user@struts.apache.org> > >> To: user@struts.apache.org > >> Subject: Re: No getter method servlet Exception. using DynaActionForm > >> Date: Wed, 16 Nov 2005 15:48:33 -0500 > >> > >> At least part of your problem is the way you're trying to setup the > >> action form. Struts will create an instance of the form bean for you, > >> which is what is passed into execute() via the 'form' parameter. > >> You're referencing that in the first line of your execute() method. > >> > >> However, you then go on to build your own form bean instance, and > >> replace the one Struts put in the request with the one you've built. > >> You don't need to do this; just use the bean Struts supplies in the > >> 'form' parameter. > >> > >> You mentioned that someone has suggested you needed to do this to get > >> initial values populated; that's not the case. The first time Struts > >> builds an instance of DynaActionForm, it will populate properties for > >> which you've supplied an initial value. What it won't do is reset > >> properties to their initial values when the reset() method is called > >> on the form, which you might care about if you have the form stored in > >> session scope. You can worry about that later though. > >> > >> So, essentially, your execute() method can be simplified to just this: > >> > >> > public ActionForward execute(ActionMapping mapping, > >> > ActionForm form, > >> > HttpServletRequest request, > >> > HttpServletResponse response) > >> > throws ServletException, IOException{ > >> > DynaActionForm setupForm = (DynaActionForm) form; > >> > //getSetupInfo(setupForm); > >> > return mapping.findForward("success"); > >> > } > >> > >> L. > >> > >> fea jabi wrote: > >> > >>> Thanks for hepling me. here is the code > >>> > >>> <form-bean > >>> name="SetupForm" > >>> type="org.apache.struts.action.DynaActionForm" dynamic="true"> > >>> <form-property name="custName" type="java.lang.String"/> > >>> <form-property name="typeName" type="java.lang.String"/> > >>> <form-property name="typeNameDesc" type="java.lang.String"/> > >>> <form-property name="confirm" type="java.lang.boolean" > >>> initial="true"/> > >>> </form-bean> > >>> > >>> <action > >>> path="/PrepareSetupAction" > >>> type="com.actions.PrepareSetupAction" > >>> name="SetupForm" > >>> scope="session" > >>> validate="false" > >>> input="/pages/Setup.jsp"> > >>> <forward name="success" path="/pages/Setup.jsp" > >>> redirect="false"/> > >>> </action> > >>> > >>> > >>> > >>> public class PrepareSetupAction extends Action { > >>> > >>> /** Creates a new instance of PrepareSetupAction */ > >>> public PrepareSetupAction() { > >>> } > >>> > >>> public ActionForward execute(ActionMapping mapping, > >>> ActionForm form, > >>> HttpServletRequest request, > >>> HttpServletResponse response) > >>> throws ServletException, IOException{ > >>> DynaActionForm setupForm = (DynaActionForm) form; > >>> > >>> System.out.println("In PrepareSetupAction : setupform is : " + > >>> setupForm); > >>> > >>> //getSetupInfo(setupForm); > >>> > >>> ModuleConfig moduleConfig = > >>> RequestUtils.getModuleConfig(request, > getServlet().getServletContext()); > >>> FormBeanConfig formConfig = > >>> moduleConfig.findFormBeanConfig("SetupForm"); > >>> DynaActionFormClass dynaClass = > >>> DynaActionFormClass.createDynaActionFormClass(formConfig); > >>> > >>> try { > >>> setupForm = (DynaActionForm)dynaClass.newInstance(); > >>> System.out.println("In PrepareSetupAction in try : > >>> setupform is : " + setupForm); > >>> } > >>> catch (Exception e) { > >>> //logger.error(e); > >>> } > >>> > >>> //request.setAttribute("SetupForm", setupForm); > >>> return mapping.findForward("success"); > >>> } > >>> > >>> } > >>> > >>> > >>> <html:form action="PrepareScreen1Action.do" method="post"> > >>> <table > > >>> ............................ > >>> ...................................... > >>> <!-- 1. Customer Name--> > >>> <tr> > >>> <td> > >>> <bean:message key="lbl.customername"/> > >>> <bean:message key="colon"/> > >>> </td> > >>> <td> > >>> <html:text property="custName" size="40" > >>> styleClass="invisibleInput" readonly="true" tabindex="-1"/> > >>> </td> > >>> <td></td> > >>> </tr> > >>> <tr></tr><tr></tr><tr></tr> > >>> <tr> > >>> <td> > >>> <bean:message key="lbl.typename"/> > >>> <bean:message key="colon"/> > >>> </td> > >>> <td> > >>> <html:text property="typeName" size="40" /> > >>> </td> > >>> <td></td> > >>> </tr> > >>> <tr></tr><tr></tr><tr></tr> > >>> <!-- 3. Type Name Description --> > >>> <tr> > >>> <td> > >>> <bean:message key="lbl.typenamedescption"/> > >>> <bean:message key="colon"/> > >>> </td> > >>> <td> > >>> <html:textarea property="typeNameDesc" /> > >>> </td> > >>> <td></td> > >>> </tr> > >>> <tr></tr><tr></tr><tr></tr> > >>> <!-- 4. confirm --> > >>> <tr> > >>> <td> > >>> <bean:message key="lbl.confirm"/> > >>> <bean:message key="colon"/> > >>> </td> > >>> <td> > >>> <html:checkbox property="confirm" /> > >>> </td> > >>> <td></td> > >>> </tr> > >>> ...................... > >>> .................... > >>> </table> > >>> </html-form> > >>> > >>> > >>> thanks. > >>> > >>> > >>> > >>>> From: Dave Newton <[EMAIL PROTECTED]> > >>>> Reply-To: "Struts Users Mailing List" <user@struts.apache.org> > >>>> To: Struts Users Mailing List <user@struts.apache.org> > >>>> Subject: Re: No getter method servlet Exception. using DynaActionForm > >>>> Date: Wed, 16 Nov 2005 11:06:56 -0500 > >>>> > >>>> fea jabi wrote: > >>>> > >>>>> When I debug after > >>>>> DynaActionForm setupForm = (DynaActionForm) form; > >>>>> > >>>>> my setupForm is null > >>>> > >>>> > >>>> > >>>> Is your struts config as you posted earlier? i.e., the "name" > >>>> attribute refers to a Dyna form that doesn't exist in the > >>>> "form-beans" section? That won't work. > >>>> > >>>>> ModuleConfig moduleConfig = > >>>>> > >>>>>>>> RequestUtils.getModuleConfig(request, > >>>>>>>> getServlet().getServletContext()); > >>>>>>>> FormBeanConfig formConfig = > >>>>>>>> moduleConfig.findFormBeanConfig("CustForm"); > >>>>>>>> DynaActionFormClass dynaClass = > >>>>>>>> DynaActionFormClass.createDynaActionFormClass(formConfig); > >>>>>>>> > >>>>>>>> try { > >>>>>>>> setupForm = (DynaActionForm)dynaClass.newInstance(); > >>>>>>> > >>>>>>> > >>>>>>> > >>>>> > >>>>> one of the user suggested that when I initialize a form-property in > >>>>> struts-config using initial="true" > >>>>> I have to use the above to prepopulate the form. > >>>>> > >>>>> is this right?? Am I using at the right place. > >>>> > >>>> > >>>> > >>>> If Struts is configured the form will have already been created on > >>>> entry to the Action. > >>>> > >>>> I think you need to back up a step and check your configuration. If > >>>> you post the relevent sections again as they exist now we might be > >>>> able to help you better. > >>>> > >>>> Right now things are wrong, and I find it highly unlikely you would > >>>> _ever_ need or want to instantiate a form inside an Action. > >>>> > >>>> Dave > >>>> > >>>> > >>>> > >>>> --------------------------------------------------------------------- > >>>> To unsubscribe, e-mail: [EMAIL PROTECTED] > >>>> For additional commands, e-mail: [EMAIL PROTECTED] > >>>> > >>> > >>> _________________________________________________________________ > >>> Don't just search. Find. Check out the new MSN Search! > >>> http://search.msn.click-url.com/go/onm00200636ave/direct/01/ > >> > >> > >> > >> > >> --------------------------------------------------------------------- > >> To unsubscribe, e-mail: [EMAIL PROTECTED] > >> For additional commands, e-mail: [EMAIL PROTECTED] > >> > > > > _________________________________________________________________ > > Express yourself instantly with MSN Messenger! Download today - it's > > FREE! http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/ > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > -- Yujun Liang [EMAIL PROTECTED]