I was in the same shoe as you, so perhaps I can share my experience.  :)

My base bean had data type that ConvertUtil can't handle (i.e. Date objects,
custom written classes), so what I did was extend the BeanUtil class instead of
ActionServlet.  Because ActionServlet will essentially be calling BeanUtil to do
the mapping.  I overrided the populate() method in BeanUtil to do the conversion
that I wanted.

Modifying this method cannot only help you to map the string to the data type you
want, but it can also do alot of stuff.  In my case, I even modified it so that
it will de-localize the values coming back in before mapping the request
parameters back to the base bean.  But the things that you can do by modifying
this method is endless.

So at the end, you don't need to change your web.xml or modify your action
servlet.  Just override the BeanUtil's populate() method.

Hope this helps.



"John M. Corro" wrote:

> The particular base bean's (the bean that is an instance variable of the
> ActionForm) accessor/mutator methods handle very specialized data types
> (custom written classes).  Assuming the ActionServlet is unable to do the
> conversion, would I have to alter the source code?  Is it possible to extend
> the ActionServlet to provide for this custom conversion and then modify the
> web.xml file so that it references the updated ActionServlet?
>
> <servlet>
>
>     <servlet-name>action</servlet-name>
>
>     <servlet-class>com.ExtendedActionServlet</servlet-class>
>
>     ...
>
> </servlet>
>
> ----- Original Message -----
> From: "Louis Leung" <[EMAIL PROTECTED]>
> To: "Struts Users Mailing List" <[EMAIL PROTECTED]>
> Sent: Friday, February 15, 2002 3:47 PM
> Subject: Re: Form -> Bean conversion
>
> > yeah, but on your <html:text> tag, your property should look something
> like
> >
> > property="someBean.someProperty"
> >
> > then, what struts will do is ActionForm.getSomeBean().getSomeProperty().
> >
> > Regarding to the actually bean's property something that is not string, I
> think
> > the ActionServlet does the convertion for you.  Check out the
> ActionServlet
> > source, processPopulate() method, and ConvertUtil.java in util package of
> struts
> > source.
> >
> > "John M. Corro" wrote:
> >
> > > Unless I'm misunderstanding, I'm not sure if that will do what we're
> hoping
> > > for....
> > >
> > > When you use the html:form tag (and corresponding input tags from the
> html
> > > tag lib) on a JSP page there's error checking to make sure you have a
> > > corresponding get/set method in the ActionForm.  If we have the original
> > > bean as an instance variable in the ActionForm and have no other
> > > getters/setters hardcoded into the ActionForm, won't that cause a
> > > compile-time error on the JSP?
> > >
> > > ----- Original Message -----
> > > From: "MacKellar, Kimberly" <[EMAIL PROTECTED]>
> > > To: "'Struts Users Mailing List'" <[EMAIL PROTECTED]>
> > > Sent: Friday, February 15, 2002 2:54 PM
> > > Subject: RE: Form -> Bean conversion
> > >
> > > > I have instances of beans within the ActionForm and then access them
> with
> > > > the name of the bean and the name of the property in the bean when
> using
> > > > them in the JSP.  The only problem is having non-Strings in the bean.
> You
> > > > need to do some sort of conversion within the ActionForm to get around
> > > this.
> > > >
> > > > Kimberly MacKellar
> > > >
> > > > -----Original Message-----
> > > > From: John M. Corro [mailto:[EMAIL PROTECTED]]
> > > > Sent: Friday, February 15, 2002 2:53 PM
> > > > To: [EMAIL PROTECTED]
> > > > Subject: Form -> Bean conversion
> > > >
> > > >
> > > > We have a bunch of existing beans that we'd like to use w/
> ActionForms.
> > > For
> > > > each bean we'll need to obviously expose the getters/setters in the
> > > > corresponding ActionForm.  The ideal scenario we'd like to see happen
> is
> > > > prevent the ActionForms from having all the corresponding
> getters/setters
> > > > hardcoded into it.  We're ok w/ coding the validate() method for each
> > > class
> > > > by hand, but we'd like to avoid having to code each ActionForm w/ a
> > > > getter/setter (even if it is templated out for us by a Struts plug in
> or
> > > > even a custom written batch file).
> > > >
> > > > Has anyone implemented something like this?
> > > >
> > > > --
> > > > 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