See below.

On Mon, 22 Jul 2002, Matt Raible wrote:

> Date: Mon, 22 Jul 2002 18:00:29 -0700 (PDT)
> From: Matt Raible <[EMAIL PROTECTED]>
> Reply-To: Struts Developers List <[EMAIL PROTECTED]>,
>      [EMAIL PROTECTED]
> To: Struts Developers List <[EMAIL PROTECTED]>
> Subject: Re: NPE when setting values on DynaActionForm
>
>
> --- "Craig R. McClanahan" <[EMAIL PROTECTED]> wrote:
> >
> >
> > On Mon, 22 Jul 2002, Matt Raible wrote:
> >
> > > Date: Mon, 22 Jul 2002 18:40:56 -0600
> > > From: Matt Raible <[EMAIL PROTECTED]>
> > > Reply-To: Struts Developers List <[EMAIL PROTECTED]>
> > > To: [EMAIL PROTECTED]
> > > Subject: NPE when setting values on DynaActionForm
> > >
> > > I want to populate a DynaActionForm before dispatching to a JSP, however
> > > the following doesn't work:
> > >
> > > DynaActionForm requestForm = new DynaActionForm();
> > > requestForm.set("subject", subject);
> > > requestForm.set("content", content);
> > > requestForm.set("courseId", cForm.getCourseId());
> > > requestForm.set("courseName", cForm.getName());
> > >
> > > I get a NPE at the first .set - here is my configuration:
> > >
> >
> > This won't work because the DynaActionForm you created doesn't know what
> > the set of valid properties are.
> >
> > >         <form-bean name="requestForm"
> > > type="org.apache.struts.action.DynaActionForm">
> > >             <form-property name="action" type="java.lang.String"/>
> > >             <form-property name="courseId" type="java.lang.String"/>
> > >             <form-property name="courseName" type="java.lang.String"/>
> > >             <form-property name="type" type="java.lang.String"/>
> > >             <form-property name="subject" type="java.lang.String"/>
> > >             <form-property name="content" type="java.lang.String"/>
> > >             <form-property name="message" type="java.lang.String"/>
> > >         </form-bean>
> > >
> > > Should it?
> > >
> >
> > With the current APIs, it is surprisingly hard to do this, because there
> > is no convenient way to get to the underlying DynaActionFormClass
> > instance.  I"m going to be adding some API in tonight's nightly build so
> > that you will be able to say:
> >
> >   DynaActionForm requestForm =
> >      DynaActionFormClass.getDynaClass("requestForm").newInstance();
> >
>
> I'd much rather do the above ^ than the below.

I don't blame you :-).


>  I'll look for a commit that
> resembles this and download the nightly tomorrow.  Will it just be in
> BeanUtils?

No, the modification is on DynaActionFormClass itself, so its just a
Struts thing.

>  I'd be willing to make the jump to 1.1 nightly if Tiles has been safely
> integrated and there's a plugin example.  Last time I updated was a few
> weeks ago.
>

I believe this was recently addressed.

> > to get a DynaActionForm initalized with the correct properties.  In the
> > mean time, a workaround is to declare that your "setup" action also uses
> > this form bean (so that Struts will set it up for you), or go through the
> > following exercise:
> >
> >     ApplicationConfig appConfig = (ApplicationConfig)
> >       request.getAttribute(Action.APPLICATION_KEY);
> >     FormBeanConfig fbConfig = appConfig.findFormBeanConfig("requestForm");
> >     DynaActionForm requestForm =
> >       DynaActionFormClass.createDynaActionFormClass(fbConfig).newInstance();
> >
> > > Thanks,
> > >
> > > Matt
> > >
> >
> > Craig
> >
> >
> > --
> > To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
> > For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
> >
>
> Thanks,
>
> Matt

Craig


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

Reply via email to