<html:form> looks at the action you identify checks if the form associated with that action ("/user/update.do" in your case) exists in the scope specified, and if it doesn't, creates it. Now the other html tags look for a page scoped attribute under the default name if you don't specify the name attribute - for example <html:text property="userName"/>.
So whats the scope of "userForm" on "/user/update.do" - is it the same as "/user/setUp.do"? Try adding the name attribute to your html tags: <html:text name="userForm" property="userName"/>. or if your "scopes" are different for userForm on different actions - make them all the same. Niall ----- Original Message ----- From: "Danko Desancic" <[EMAIL PROTECTED]> To: "Struts Users Mailing List" <[EMAIL PROTECTED]> Sent: Friday, March 12, 2004 9:04 PM Subject: Re: (pre)populating DynaActionForm > This is really funny, I did output the request scope on the userForm.jsp > and it turns out that Struts puts userForm in request scope on its own > with all appropriate data that I set. The question is then why aren't > they displayed in the html tags? > > Any ideas? > > Danko > > > Niall Pemberton wrote: > > >Every thing looks fine to me. Is this the actual struts-config.xml you are > >trying to use - because I did notice your "/user/update" has re-direct in > >the "Success" forward. Obviously you say the problem is with the > >"/user/setUp" action but I ask because a re-direct would cause the kind of > >behaviour you describe. > > > >Niall > > > >----- Original Message ----- > >From: "Danko Desancic" <[EMAIL PROTECTED]> > >To: "Struts Users Mailing List" <[EMAIL PROTECTED]> > >Sent: Friday, March 12, 2004 8:26 PM > >Subject: Re: (pre)populating DynaActionForm > > > > > > > > > >>I tried that and it does not work. No errors though just balnk form with > >>initial value. > >> > >>Thanks anyway > >> > >>Hubert Rabago wrote: > >> > >> > >> > >>>My bad. I didn't read your mail through; only saw the top portion. > >>>In your setupUserAction, after you prepopulate the form, set it as a > >>> > >>> > >request > > > > > >>>attribute: > >>> > >>> > >>> > >>> > >>> > >>>>>from SetUpUserAction.execute() > >>>> > >>>> > >>>>> DynaActionForm userForm = (DynaActionForm)form; > >>>>> > >>>>> userForm.set("userName",user.getUserName()); > >>>>> userForm.set("password",user.getPassword()); > >>>>> userForm.set("fullName",user.getFullName()); > >>>>> userForm.set("email",user.getEmail()); > >>>>> userForm.set("status",new Integer(1)); > >>>>> > >>>>> > >>>>> > >>>>> > >>> request.setAttribute("userForm",userForm); > >>> > >>> > >>> > >>> > >>>>> forward = mapping.findForward("Success"); > >>>>> return forward; > >>>>> > >>>>> > >>>>> > >>>>> > >>>It works when the form is in session scope because that will make the > >>> > >>> > >whole > > > > > >>>session deal with one form instance. > >>> > >>>hth, > >>>Hubert > >>> > >>>--- Hubert Rabago <[EMAIL PROTECTED]> wrote: > >>> > >>> > >>> > >>> > >>>>As far as I can tell, there really isn't any support for prepopulating a > >>>>DynaActionForm. The ff is from > >>>> > >>>> > >>>> > >>>> > >>>> > >>http://jakarta.apache.org/struts/userGuide/building_controller.html#dyna_a c > >> > >> > >tion_form_classes > > > > > >>> > >>> > >>>>"DynaActionForms are not a drop-in replacement for ActionForms. If you > >>>> > >>>> > >need > > > > > >>>>to access ActionForm properties in your Action, you will need to use the > >>>>map-style accessor, like myForm.get("name"). If you actively use the > >>>>ActionForm object in your Action, then you may want to use conventional > >>>>ActionForms instead. > >>>> > >>>>"DynaActionForms cannot be instantiated using a no-argument constructor. > >>>> > >>>> > >In > > > > > >>>>order to simulate the extra properties, there is a lot of machinery > >>>>involved > >>>>in their construction. You must rely on Struts to instantiate a > >>>>DynaActionForm for you, via the ActionMapping." > >>>> > >>>>What I did was copy the code that RequestUtils uses to instantiate a > >>>>DynaActionForm, and put it in a method that I can call like this: > >>>>DynaActionForm dynaForm = createDynaActionForm("formName", > >>>>mapping.getModuleConfig()); > >>>> > >>>> > >>>> > >>>> /** > >>>> * <p>Create the [EMAIL PROTECTED] DynaActionForm} instance identified by the > >>>>given > >>>> * formName.</p> > >>>> * > >>>> * @param formName the name used to identify the form > >>>> * @param moduleConfig the configuration for the current module > >>>> * @return the DynaActionForm identified by formName > >>>> */ > >>>> public static DynaActionForm createDynaActionForm( > >>>> String formName, > >>>> ModuleConfig moduleConfig) { > >>>> DynaActionForm dynaForm; > >>>> try { > >>>> // the code here is based on [copied from? :) ] > >>>> // RequestUtils.createActionForm() > >>>> FormBeanConfig formBeanConfig = > >>>> moduleConfig.findFormBeanConfig(formName); > >>>> > >>>> DynaActionFormClass dynaClass = > >>>> DynaActionFormClass.createDynaActionFormClass( > >>>> formBeanConfig); > >>>> > >>>> dynaForm = (DynaActionForm) dynaClass.newInstance(); > >>>> > >>>> if (logger.isTraceEnabled()) { > >>>> logger.trace("inside findDynaActionForm() where > >>>> > >>>> > >dynaForm=" > > > > > >>>>+ > >>>> dynaForm + " and formBeanConfig=" + > >>>>formBeanConfig); > >>>> } > >>>> > >>>> initializeDynaForm(formName, dynaForm, moduleConfig); > >>>> } catch (Exception e) { > >>>> logger.error("Exception [" + e + "," + e.getMessage() + "]", > >>>>e); > >>>> // TODO what to do if we get an error initializing the form? > >>>> // -> right now we're just returning null > >>>> dynaForm = null; > >>>> } > >>>> return dynaForm; > >>>> } > >>>> > >>>> /** > >>>> * <p>Initialize all bean properties to their initial values, as > >>>>specified > >>>> * in the [EMAIL PROTECTED] FormPropertyConfig} elements associated with the > >>>> * definition of this <code>DynaActionForm</code>. Based on the > >>>> * <code>DynaActionForm.initialize()</code> method. > >>>> * </p> > >>>> * > >>>> * @param dynaForm the DynaActionForm to be initialized > >>>> * @param moduleConfig the ModuleConfig under which this dynaForm > >>>> * > >>>> */ > >>>> protected static void initializeDynaForm(String name, > >>>> DynaActionForm dynaForm, > >>>> ModuleConfig moduleConfig) > >>>> > >>>> > >{ > > > > > >>>> FormBeanConfig config = moduleConfig.findFormBeanConfig(name); > >>>> if (config == null) { > >>>> return; > >>>> } > >>>> FormPropertyConfig props[] = config.findFormPropertyConfigs(); > >>>> for (int i = 0; i < props.length; i++) { > >>>> dynaForm.set(props[i].getName(), props[i].initial()); > >>>> } > >>>> } > >>>> > >>>>hth, > >>>>Hubert > >>>> > >>>>--- Danko Desancic <[EMAIL PROTECTED]> wrote: > >>>> > >>>> > >>>> > >>>> > >>>>>I am newbie to Struts and have a problem with populating > >>>>>DynaActionForm. I have two actions: one to set up userForm and one to > >>>>>process it. 1st one is suposed to grab user info and populate the form. > >>>>>The second one updates user info after the form is submitted. The > >>>>>problem is that the from is not populated. Moreover changing the scope > >>>>>to "session" in action "/user/setUp" results in form being populated > >>>>>with appropriate data. What am I doing wrong in here? > >>>>> > >>>>>Thanks > >>>>>Danko > >>>>> > >>>>> > >>>>> > >>>>>from struts-config.xml > >>>> > >>>> > >>>>><form-bean name="userForm" > >>>>>type="org.apache.struts.action.DynaActionForm">that > >>>>> <form-property name="userName" type="java.lang.String"/> > >>>>> <form-property name="password" type="java.lang.String"/> > >>>>> <form-property name="fullName" type="java.lang.String"/> > >>>>> <form-property name="email" type="java.lang.String"/> > >>>>> <form-property name="status" type="java.lang.Integer" > >>>>>initial="0"/> > >>>>></form-bean> > >>>>> > >>>>><action > >>>>> path="/user/setUp" > >>>>> type="myPackage.user.SetUpUserAction" > >>>>> name="userForm" > >>>>> scope="request" > >>>>> validate="false"> > >>>>> <forward name="Success" > >>>>>path="/WEB-INF/jsp/user/userForm.jsp"/> > >>>>></action> > >>>>> > >>>>><action > >>>>> path="/user/update" > >>>>> type="myPackage.user.UpdateUserAction" > >>>>> name="userForm" > >>>>> scope="request" > >>>>> validate="true" > >>>>> input="/WEB-INF/jsp/user/userForm.jsp"> > >>>>> <forward name="Success" path="/user/edit.do" > >>>>> > >>>>> > >>>>> > >>>>> > >>>>redirect="true"/> > >>>> > >>>> > >>>> > >>>> > >>>>></action> > >>>>> > >>>>> > >>>>> > >>>>>from SetUpUserAction.execute() > >>>> > >>>> > >>>>> DynaActionForm userForm = (DynaActionForm)form; > >>>>> > >>>>> userForm.set("userName",user.getUserName()); > >>>>> userForm.set("password",user.getPassword()); > >>>>> userForm.set("fullName",user.getFullName()); > >>>>> userForm.set("email",user.getEmail()); > >>>>> userForm.set("status",new Integer(1)); > >>>>> > >>>>> forward = mapping.findForward("Success"); > >>>>> return forward; > >>>>> > >>>>> > >>>>> > >>>>> > >>>>>from userForm.jsp > >>>> > >>>> > >>>>><html:form action="/user/update.do"> > >>>>><table cellpadding="2" cellspacing="2" border="1" width="800px"> > >>>>> <tr> > >>>>> <td class="fieldHeader" colspan="4">UPDATE USER</td> > >>>>> </tr> > >>>>> <tr> > >>>>> <td class="fieldName">Username</td> > >>>>> <td><html:text property="userName"/></td> > >>>>> </tr> > >>>>> ...... > >>>>> <tr> > >>>>> <td class="fieldName">Status</td> > >>>>> <td><html:radio property="status" value="1"/>Active   > >>>>><html:radio property="status" value="0"/>Inactive </td> > >>>>> </tr> > >>>>> <tr> > >>>>> <td colspan="4" class="fieldName" align="center"> > >>>>> <html:submit value="UPDATE"/> > >>>>> </td> > >>>>> </tr> > >>>>></table> > >>>>></html:form> > >>>>> > >>>>> > >>>>>--------------------------------------------------------------------- > >>>>>To unsubscribe, e-mail: [EMAIL PROTECTED] > >>>>>For additional commands, e-mail: [EMAIL PROTECTED] > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > >>>>__________________________________ > >>>>Do you Yahoo!? > >>>>Yahoo! Search - Find what you’re looking for faster > >>>>http://search.yahoo.com > >>>> > >>>>--------------------------------------------------------------------- > >>>>To unsubscribe, e-mail: [EMAIL PROTECTED] > >>>>For additional commands, e-mail: [EMAIL PROTECTED] > >>>> > >>>> > >>>> > >>>> > >>>> > >>>__________________________________ > >>>Do you Yahoo!? > >>>Yahoo! Search - Find what you’re looking for faster > >>>http://search.yahoo.com > >>> > >>>--------------------------------------------------------------------- > >>>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] > > > > > > > > > > > --------------------------------------------------------------------- > 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]