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]>