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_action_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 &nbsp 
> > <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]

Reply via email to