struts-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Austin Lowry <austin.lo...@fedex.com>
Subject Re: Pre-populating Form Bean
Date Mon, 23 Dec 2002 15:55:58 GMT
Mark,

We just happen to be fighting a similar problems today. Someone please
correct me if I am off base here, which jugding by my results I am, but
shouldn't this work (psudo-code):

1. MyForm myForm = (MyForm)form;
2. myForm.getValues() --> myStateObject.setValues();
3. myStateObject.save();
4. MyNextForm myNextForm = new MyNextForm();
5. myStateObject.getValues() --> myNextForm.setValues();
6. request.setAttribute("nameFromStrutsConfig", myNextForm);
7. return mapping.findForward("success");

It is then my understanding that the JSP that we are forwarding to will
then retrieve the request object attribute "nameFromStrutsConfig" and
attempt to populate the JSP form from that object. I believe that the
name that the JSP is attempting to use is the value of the <action>
parameter "name" from the struts-config.xml file.

Am I off base here? Thanks in advance for any help.

Mark Lowe wrote:

>As a side note I'd watch out putting dots in your actions .. I was doing the
>same and it worked .. and then i was getting an error that complained it
>could find the action...
>
>perhaps it was the release i was using or something, but i'd hate someone
>else to wash time out over this as well.. If its working however then don't
>fix it...
>
>
>
>----- Original Message -----
>From: "Mark Conlin" <meconlin@yahoo.com>
>To: "'Struts Users Mailing List'" <struts-user@jakarta.apache.org>
>Sent: Friday, December 20, 2002 8:42 PM
>Subject: RE: Pre-populating Form Bean
>
>
>  
>
>>This can not be the correct way to do this.
>>
>>I removed any reference to the form from the pre-Action:
>>
>><action path="/customer.customerAccountDetails.pre.edit"
>>type="com.yordata.action.customer.CustomerAccountDetailsPreEditAction">
>><forward name="success" path="customer.edit_accountdetails"/>
>></action>
>>
>>Then I placed the Form into the session in the action like this:
>>session.setAttribute( "customerDetailsForm", custForm);
>>
>>This works but, I do not want to hard-code the form reference like this.
>>
>>Mark
>>
>>
>>
>>-----Original Message-----
>>From: Mark Conlin [mailto:meconlin@yahoo.com]
>>Sent: Friday, December 20, 2002 2:30 PM
>>To: 'Struts Users Mailing List'
>>Subject: RE: Pre-populating Form Bean
>>
>>
>>
>>Okay, I think I am missing something major here.
>>By watching the log files I see the following.
>>
>>1)Proccessing my pre edit Action -
>>"customer.customAccountDetails.pre.edit"
>>2)Struts then looks for my ActionForm -  "customerDetailsForm"
>>3)Struts then creates my ActionForm since it can not find it.
>>4)The form fails validation, as described by my validation.xml file.
>>
>>The pre edit Action never runs...
>>
>>The result is that I arrive at my "create" page with validation errors
>>because the validation logic tells it to return to that page.
>>
>>So, how can I pre-populate a Form? What am I don't wrong here...
>>
>>Mark
>>
>>
>>-----Original Message-----
>>From: Mark Conlin [mailto:meconlin@yahoo.com]
>>Sent: Friday, December 20, 2002 1:38 PM
>>To: 'Struts Users Mailing List'
>>Subject: RE: Pre-populating Form Bean
>>
>>
>>Okay so I have done the following...
>>I placed name="customerDetailsForm" into my action declaration..
>>It wanted an input field as well so I added that too.
>>
>>Now my form comes up and it is still not populated...
>>
>>My action execute code is below... are you sure I don't need to place
>>the custForm back into the session somehow ?
>>
>>
>>Thanks
>>Mark
>>
>>logger.debug("performAction starting");
>>ActionErrors errors = new ActionErrors();
>>ActionForward actionForward = mapping.findForward(FAILURE);
>>CustomerDetailsForm custForm = (CustomerDetailsForm) form;
>>HttpSession session = (HttpSession) request.getSession();
>>
>>custForm = this.setup( session );
>>actionForward = mapping.findForward(SUCCESS);
>>
>>logger.debug("performAction exiting");
>>
>>Action Declaration:
>>
>><action path="/customer.customerAccountDetails.edit"
>>type="com.yordata.action.customer.CustomerAccountDetailsEditAction"
>>name="customerDetailsForm"
>>scope="session"
>>input="customer.account_details_view">
>><forward name="success"
>>path="/customer.customerAccountDetails.view.do"/>
>><forward name="failure" path="customer.edit_accountdetails"/>
>></action>
>>
>>
>>-----Original Message-----
>>From: Eddie Bush [mailto:ekbush@swbell.net]
>>Sent: Friday, December 20, 2002 2:13 PM
>>To: Struts Users Mailing List
>>Subject: Re: Pre-populating Form Bean
>>
>>If this is a form which you've declared in your config file, and it's
>>associated with this action and you're forwarding to a JSP, you really
>>needn't bother sticking it into any scope.  Struts will do this for you.
>>
>> Just populate the form and return an ActionForward and let Struts do
>>it's thing.
>>
>>... so far as your error is concerned, I can't imagine why you're
>>receiving it.  You did specify a 'name="formName"' as an attribute to
>>this action, right?  That's how you make the association between the
>>action and the form.  I believe this value would probably be null if you
>>
>>didn't specify that attribute - and I can see where that would generate
>>an error.
>>
>>Ah - yes.  I see your action declaration now.  Add in
>>'name="customerDetailsForm"' to your <action line.  That will build the
>>association for you.  Once you've done this, you no longer have to worry
>>
>>about creating the form ... or anything like that - and it's the *only*
>>way you're going to get Struts to populate the form for you
>>automatically (why would it populate something if it doesn't know there
>>is something to populate?).
>>
>>Good luck!
>>
>>Mark Conlin wrote:
>>
>>    
>>
>>>I would like to pre-populate a form bean for an edit screen.
>>>I have spent the last hour or two reading the archives and still I have
>>>failed to find the help I need.
>>>Any feedback would be appreciated.
>>>
>>>I have an Action class CustomerAccountDetailsPreEditAction that
>>>pre-populates my form.
>>>However, I do not know how to place the form back into the session or
>>>request so that the jsp page can find it and use it to display values.
>>>
>>>request.setAttribute(mapping.getName(), myForm);
>>>session.setAttribute(mapping.getName(), myForm);
>>>
>>>Both result in an error.
>>>
>>>Here is the action declaration:
>>>           <action path="/customer.customerAccountDetails.pre.edit"
>>>
>>>type="com.yordata.action.customer.CustomerAccountDetailsPreEditAction">
>>>                       <forward name="success"
>>>path="customer.edit_accountdetails"/>
>>>           </action>
>>>
>>>
>>>Here is the form declaration:
>>><form-bean name="customerDetailsForm"
>>>type="com.yordata.form.CustomerDetailsForm"/>
>>>
>>>
>>>Thanks for your help,
>>>Mark
>>>
>>>
>>>
>>>      
>>>
>>--
>>Eddie Bush
>>
>>
>>
>>
>>
>>--
>>To unsubscribe, e-mail:
>><mailto:struts-user-unsubscribe@jakarta.apache.org>
>>For additional commands, e-mail:
>><mailto:struts-user-help@jakarta.apache.org>
>>
>>
>>--
>>To unsubscribe, e-mail:
>><mailto:struts-user-unsubscribe@jakarta.apache.org>
>>For additional commands, e-mail:
>><mailto:struts-user-help@jakarta.apache.org>
>>
>>
>>--
>>To unsubscribe, e-mail:
>><mailto:struts-user-unsubscribe@jakarta.apache.org>
>>For additional commands, e-mail:
>><mailto:struts-user-help@jakarta.apache.org>
>>
>>
>>--
>>To unsubscribe, e-mail:
>>    
>>
><mailto:struts-user-unsubscribe@jakarta.apache.org>
>  
>
>>For additional commands, e-mail:
>>    
>>
><mailto:struts-user-help@jakarta.apache.org>
>  
>
>>    
>>
>
>
>--
>To unsubscribe, e-mail:   <mailto:struts-user-unsubscribe@jakarta.apache.org>
>For additional commands, e-mail: <mailto:struts-user-help@jakarta.apache.org>
>
>  
>



--
To unsubscribe, e-mail:   <mailto:struts-user-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:struts-user-help@jakarta.apache.org>


Mime
View raw message