Heres my 2 cents on the whole validation thing.  It's bit of ramble, so
please don't hesitate to skip over it. :)

I find the validation mechanism too restrictive.  I do my business-level
validation beyond the web-tier, so while I do use ActionErrors for
ActionForm level validation, I have to build additional stuff to present by
business-level validation errors as well.  For example:

I have a CustomerActionForm, with birthDay, birthMonth, and birthYear string
properties.

I have a generic CustomerDetail bean with a birthDate property of type
Calendar.  (This bean gets passed to my Customer entity class to create a
new customer).

If the user enters an illegal date (eg. 31/2/2001), I pick it up in the
struts validation.  If the date is in the future, I pick it up in my
CustomerDetail validation method.

It would be nice if struts had an Errors class that had a method like:
import(Collection errors, String msgKeyProperty, String
msgValue0Property...).  That way I could use one mechanism to render all of
my validation errors, without having my business-type errors tied to any of
the struts classes.

Oh and one more thing: after a successful form submission, I immediately
forward to the next screen in the workflow, with the success message
inserted at the top.  This saves having to go to an intermediate success
page.  So for me at least, html:errors/ActionErrors would be better off
abstracted to a generic "messages" mechanism.

And lastly... having to stick <li> tags in my error-messages file seems
rather messy.  Am I doing something wrong here?

Thanks for listening :)

Paul

----- Original Message -----
From: "Antony" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Thursday, October 18, 2001 5:17 PM
Subject: Re: where should validation happen?


>
> Nice discussion.
> I like validate() method because it can give access to ActionError
objects,
> so one can
> easily produce internationalized error messages and forward back to input
> page, and IMHO
> that`s a useful feature. Just my 2 cents anyway;-)
>
> ----- Original Message -----
> From: "Robert Parker" <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: Thursday, October 18, 2001 12:35 PM
> Subject: Re: where should validation happen?
>
>
> > >From my experience there are some subtle details when using the
> validate()
> > method of the form bean...
> > The validate method is called unless you set the validate attribute in
the
> > struts config to false.
> > If an error is found by your validate method, struts seems to delegate
> back
> > to the input (jsp) as specified in the config, hence your action
handlers
> > perform method is not called.
> > My preference is to perform basic field/type validation in the browser
> using
> > javascript, and business type validation I handle via beans called from
my
> > action handler class.
> > Letting struts call the validate() method for me has given me problems -
> as
> > I often have my action handlers populate say collections of lookup
values
> > for selection lists etc. Hence if struts does not call my perform
method,
> my
> > selection lists will be empty. Note I discovered this after I had
designed
> > my action handlers this way...
> > regards
> > Rob
>
>
>

Reply via email to