DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT <http://nagoya.apache.org/bugzilla/show_bug.cgi?id=17150>. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE.
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=17150 Validation rules not reusable across layers, eg. EJBs Summary: Validation rules not reusable across layers, eg. EJBs Product: Struts Version: 1.1 Beta 3 Platform: All OS/Version: All Status: NEW Severity: Enhancement Priority: Other Component: Validator Framework AssignedTo: [EMAIL PROTECTED] ReportedBy: [EMAIL PROTECTED] I'd like to be able to pass a ValidatorForm to/from the servlet/EJB and perform the same validation checks on it. Rationale: I don't want to validate the same pre-conditions in two layers. I don't want to write the same validation rule twice. Basically, the problem I have is that HttpServletRequest and ActionErrors are passed into the static FieldChecks methods (ValidationActions). The validation itself does not require HttpServletRequest or the ActionErrors, except that it creates the ActionErrors objects. The request is used to grab the Locale and MessageResources information, which in turn is used to construct the ActionErrors. My suggestions are to: - remove the Struts-specific stuff from the static validation methods (in the FieldChecks class). - generate the ActionErrors _after_ the Validator.validate() has been called (using the returned ValidatorResults object and the current HttpServletRequest). This should keep the validation itself independent of Struts and usable by other layers. Things to consider are: - is it sensible/practical for ValidationActions to depend on the request object? - how can another layer use the ValidatorForm easily? Should the validatorResults member be exposed? Would a method like "ValidatorResults validate()" be sensible? --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]