David Graham wrote:

After you form passes validation you can validate the business rules by copying the form data into your VO and calling some business method. The form validation is only meant to check things like, "Is this a credit card number format?" or "Is this a valid email format?". You need to call a business method to determine if the credit card number is actually valid.

David
Right. I should have said syntactically valid ;-) I guess that's what you're chewing me out for. Only business rules can determine that they are, in fact, 100% valid.

From: Eddie Bush <[EMAIL PROTECTED]>
Subject: Re: RequestProcessor and processValidate

Eric Beaumier wrote:

Hi guys,

I have a question regarding the order of using Commons-Validator in Struts 1.1. Actually Struts feed the FORM before doing validation on this one. Because the FORM must not throw exception during this feeding, usually your FORMBEAN use only String datatype as setter/getter.

But in the case I receive a Composite Value Object from EJB, using a complexe structure with beans using differents datatypes (String, boolean, long , BigDecimal, ...), I can't use it directly with Nested Tag for editing. Because I can't validate input before feeding a BigDecimal for example! If the user enter "hello" in Textbox where it suppose to be a BigDecimal, an Exception is Throw ...
note what you called your object - you called it a "Composite Value Object". Ok, that's cool - still, it's a Value Object. Forms are not meant to be VOs; nor are VOs supposed to be used as forms. Forms *only* exist to give a "limbo" area for data to sit, in exactly the same state as the user placed it there, until the form passes validation. Only once the form passes validation should your data be copied from the form to your VO. If you use the EJB as your VO, you will not be able to preserve user input because - just like the case you described - some fields might complain about the values that get assigned to them and cause the user input to be lost.

Do you will look to add option to do the validation on the Request object first?
I don't really see the need.  Your VO should always contain valid data.

Like this, we can do the unit validation accordingly the validation.xml and when all unit validation is done, you can feed the FORM ... Nested Tag will redisplay the value from Request object at the place of FormBean getter.

Give me your feedback ...

Thanks.

--
Eddie Bush




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

Reply via email to