Why is there a need for seperate FormBean object in the View? Couldn't you
just use a generic bean that could hold your application-specific validation
logic and be shared between your view and model? Then, you could repopulate
the form directly from the request.

One problem I see with this is that the names of your form fields and the
fields in other parts of your application (i.e. the model) are coupled. This
is a small sacrifice for the automation you get though and most likely the
case for many applications already.

Second, you lose field-specific filtering. This isn't such a big deal
because you really just need to filter out characters that would interfere
with your HTML redisplaying properly anyway which will be the same for every
field.

Lastly, there's the validation. You could go two directions on this one.
One, you could have a method built into your domain/value object to perform
the validation. Struts would handle the String -> Number, etc. conversions
automatically returning appropriate error messages. Then, it would call your
validation method and append those error messages (the automatic validations
would supercede the manual ones). Admittedly this could get a bit tricky,
but it may be better than doing this manually.

Or two, the Struts user could implement a FormValidator that would work
against a generic value Map interface (in HTTP requests, this would be
backed by the HTTPRequest object). You could argue that you lose compile
time type checking in this case, but is it really that valuable in the
current incarnation?

Thanks,
Bob

----- Original Message -----
From: "Tim Moore" <[EMAIL PROTECTED]>
To: "Struts Developers List" <[EMAIL PROTECTED]>
Sent: Tuesday, April 09, 2002 11:59 AM
Subject: RE: Is FormBean mandatory???


> -----Original Message-----
> From: Craig R. McClanahan [mailto:[EMAIL PROTECTED]]
> Sent: Tuesday, April 09, 2002 12:10 PM
> To: Struts Developers List
> Subject: RE: Is FormBean mandatory???
>
>
>
>
> On Tue, 9 Apr 2002, Tim Moore wrote:
>
> > Date: Tue, 9 Apr 2002 11:56:22 -0400
> > From: Tim Moore <[EMAIL PROTECTED]>
> > Reply-To: Struts Developers List <[EMAIL PROTECTED]>
> > To: Struts Developers List <[EMAIL PROTECTED]>
> > Subject: RE: Is FormBean mandatory???
> >
> > > -----Original Message-----
> > > From: Craig R. McClanahan [mailto:[EMAIL PROTECTED]]
> > > Sent: Tuesday, April 09, 2002 11:38 AM
> > > To: Struts Developers List
> > > Cc: [EMAIL PROTECTED]
> > > Subject: RE: Is FormBean mandatory???
> > >
> > > On Tue, 9 Apr 2002, Konstantin Priblouda wrote:
> > >
> > > > Date: Tue, 9 Apr 2002 08:15:03 -0700 (PDT)
> > > > From: Konstantin Priblouda <[EMAIL PROTECTED]>
> > > > Reply-To: Struts Developers List <[EMAIL PROTECTED]>
> > > > To: Struts Developers List <[EMAIL PROTECTED]>,
> > > >      [EMAIL PROTECTED]
> > > > Subject: RE: Is FormBean mandatory???
> > > >
> > > > --- Matt Raible <[EMAIL PROTECTED]> wrote:
> > > > > Web forms can only handle Strings and booleans - so
> > > > > if your value
> > > > > objects have Dates or Integers, get ready for some
> > > > > fun!
> > > >
> > > > Integers are completely OK, floats depend on sanity of
> web users.
> > > > ( imagine some bank clerk who is used to enter dots to separate
> > > > 000... )
> > > >
> > >
> > > Using int or Integer properties in a form bean misses the whole
> > > reason for its existence -- to reproduce the user's input in case
> > > they made a mistake.
> > >
> >
> > It's still nice that you can use integer properties, though, for
> > things like select fields and radio buttons...anything that doesn't
> > allow free-form text input.
> >
>
> How do *you* know that your Struts client is actually a
> browser (and therefore using the SELECT box to control the
> input value that is sent)? It could be a program that is
> submitting HTTP requests to trigger transactions in your webapp.  :-)

Then I'm not concerned about it throwing an exception if I get a garbage
value, or maintaining the garbage value for the response.  I still do
bounds checking of course if that's necessary...it's just nice to have
the String to int conversion happen implicitly.  Same with booleans and
checkboxes.

Now I guess if I decide to change my form to use a text input instead of
a drop-down, then I have to go back and change the form bean and action.
But most of the time, that's not even a remote possibility--like if
you're choosing an item from a list and it's sending the primary key
back when you submit.

In general, though, I don't usually bother making "pretty" error
messages for the types of errors that could have only originated from a
buggy or malicious client request; I just throw an exception.
Presumably the response isn't going to be displayed directly to the user
anyway if they're using a GUI client or something like that.  Is there
any other reason to use only String properties in that case?

--
Tim Moore / Blackboard Inc. / Software Engineer
1899 L Street, NW / 5th Floor / Washington, DC 20036
Phone 202-463-4860 ext. 258 / Fax 202-463-4863

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