I have a similar scenario but in my case the sending action does not have
the same form bean bean associated as the destination. So what I want to do
is to instantiate a form bean which the JSP is expecting and put it in the
request scope.

Here is my code:

DynaActionForm form = new DynaActionForm();
form.set("productId", String.valueOf(acc.getProductId()));
form.set("mfrPartNumber", acc.getAccessoryProduct().getMfgPartNo());
form.set("description", acc.getAccessoryProduct().getDescription());
form.set("notes", acc.getNotes());
req.setAttribute("accessory", form);

This is the JSP to which I am sending this request:
<html:form action="saveAcc.do" method="GET" >
            <html:text property="productId" size="25"readonly="true"/></td>
            <html:text property="mfrPartNumber" size="25"/></td>
            <html:text property="description" size="25"/></td>
            <html:textarea property="notes" rows="8"/></td>
            <html:submit >Save Accessory</html:submit>
    </html:form>

In struts-config.xml I have the following def for action saveAcc.do
<action path="/saveAcc" type="my.mypackage.MySaveAccessoryAction"
name="accessory" validate="false" scope="request">

This is the error I get when submitting to the JSP:
java.lang.NullPointerException at
org.apache.struts.action.DynaActionForm.getDynaProperty(DynaActionForm.java:
545) at org.apache.struts.action.DynaActionForm.set(DynaActionForm.java:361)
at com.etilize.cms.web.actions.AddAccessoriesAction.editAccessory ......
(more...)

I am sorry if this has come up earlier but I could not find one.

Thanks a lot.
Affan
----- Original Message -----
From: "Mark Lowe" <[EMAIL PROTECTED]>
To: "Struts Users Mailing List" <[EMAIL PROTECTED]>
Sent: Saturday, December 21, 2002 1:17 AM
Subject: Re: Pre-populating Form Bean


> 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" <[EMAIL PROTECTED]>
> To: "'Struts Users Mailing List'" <[EMAIL PROTECTED]>
> 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:[EMAIL PROTECTED]]
> > 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:[EMAIL PROTECTED]]
> > 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:[EMAIL PROTECTED]]
> > 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:[EMAIL PROTECTED]>
> > For additional commands, e-mail:
> > <mailto:[EMAIL PROTECTED]>
> >
> >
> > --
> > To unsubscribe, e-mail:
> > <mailto:[EMAIL PROTECTED]>
> > For additional commands, e-mail:
> > <mailto:[EMAIL PROTECTED]>
> >
> >
> > --
> > To unsubscribe, e-mail:
> > <mailto:[EMAIL PROTECTED]>
> > For additional commands, e-mail:
> > <mailto:[EMAIL PROTECTED]>
> >
> >
> > --
> > To unsubscribe, e-mail:
> <mailto:[EMAIL PROTECTED]>
> > For additional commands, e-mail:
> <mailto:[EMAIL PROTECTED]>
> >
> >
>
>
> --
> To unsubscribe, e-mail:
<mailto:[EMAIL PROTECTED]>
> For additional commands, e-mail:
<mailto:[EMAIL PROTECTED]>
>


--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to