germuska 2004/04/02 06:30:58 Modified: src/share/org/apache/struts/validator DynaValidatorActionForm.java DynaValidatorForm.java ValidatorActionForm.java ValidatorForm.java Log: Push validate code up into ValidatorForm and add a getValidationKey() method which enables subclasses to share that code while using different rules for finding the Validator form. PR: 28150 Submitted by: Niall Pemberton Revision Changes Path 1.14 +11 -39 jakarta-struts/src/share/org/apache/struts/validator/DynaValidatorActionForm.java Index: DynaValidatorActionForm.java =================================================================== RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/validator/DynaValidatorActionForm.java,v retrieving revision 1.13 retrieving revision 1.14 diff -u -r1.13 -r1.14 --- DynaValidatorActionForm.java 14 Mar 2004 06:23:47 -0000 1.13 +++ DynaValidatorActionForm.java 2 Apr 2004 14:30:57 -0000 1.14 @@ -21,16 +21,9 @@ package org.apache.struts.validator; import java.io.Serializable; - -import javax.servlet.ServletContext; import javax.servlet.http.HttpServletRequest; import org.apache.commons.beanutils.DynaBean; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.commons.validator.Validator; -import org.apache.commons.validator.ValidatorException; -import org.apache.struts.action.ActionErrors; import org.apache.struts.action.ActionMapping; /** @@ -49,37 +42,16 @@ public class DynaValidatorActionForm extends DynaValidatorForm implements DynaBean, Serializable { /** - * Commons Logging instance. - */ - private static Log log = LogFactory.getLog(DynaValidatorActionForm.class); - - /** - * Validate the properties that have been set from this HTTP request, - * and return an <code>ActionErrors</code> object that encapsulates any - * validation errors that have been found. If no errors are found, return - * <code>null</code> or an <code>ActionErrors</code> object with no - * recorded error messages. + * Returns the Validation key. * - * @param mapping The mapping used to select this instance. - * @param request The servlet request we are processing. - * @return ActionErrors containing validation errors. + * @param mapping The mapping used to select this instance + * @param request The servlet request we are processing + * @return validation key - the action element's 'path' attribute in this case */ - public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) { - this.setPageFromDynaProperty(); - - ServletContext application = getServlet().getServletContext(); - ActionErrors errors = new ActionErrors(); - - Validator validator = - Resources.initValidator(mapping.getPath(), this, application, request, errors, page); - - try { - validatorResults = validator.validate(); - } catch (ValidatorException e) { - log.error(e.getMessage(), e); - } + public String getValidationKey(ActionMapping mapping, + HttpServletRequest request) { - return errors; + return mapping.getPath(); } } 1.16 +23 -6 jakarta-struts/src/share/org/apache/struts/validator/DynaValidatorForm.java Index: DynaValidatorForm.java =================================================================== RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/validator/DynaValidatorForm.java,v retrieving revision 1.15 retrieving revision 1.16 diff -u -r1.15 -r1.16 --- DynaValidatorForm.java 14 Mar 2004 06:23:47 -0000 1.15 +++ DynaValidatorForm.java 2 Apr 2004 14:30:57 -0000 1.16 @@ -101,8 +101,12 @@ ServletContext application = getServlet().getServletContext(); ActionErrors errors = new ActionErrors(); - Validator validator = - Resources.initValidator(mapping.getAttribute(), this, application, request, errors, page); + String validationKey = getValidationKey(mapping, request); + + Validator validator = Resources.initValidator(validationKey, + this, + application, request, + errors, page); try { validatorResults = validator.validate(); @@ -111,6 +115,19 @@ } return errors; + } + + /** + * Returns the Validation key. + * + * @param mapping The mapping used to select this instance + * @param request The servlet request we are processing + * @return validation key - the form element's name in this case + */ + public String getValidationKey(ActionMapping mapping, + HttpServletRequest request) { + + return mapping.getAttribute(); } /** 1.10 +9 -39 jakarta-struts/src/share/org/apache/struts/validator/ValidatorActionForm.java Index: ValidatorActionForm.java =================================================================== RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/validator/ValidatorActionForm.java,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- ValidatorActionForm.java 14 Mar 2004 06:23:47 -0000 1.9 +++ ValidatorActionForm.java 2 Apr 2004 14:30:57 -0000 1.10 @@ -18,18 +18,11 @@ * limitations under the License. */ - package org.apache.struts.validator; import java.io.Serializable; -import javax.servlet.ServletContext; import javax.servlet.http.HttpServletRequest; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.commons.validator.Validator; -import org.apache.commons.validator.ValidatorException; -import org.apache.struts.action.ActionErrors; import org.apache.struts.action.ActionMapping; @@ -50,39 +43,16 @@ public class ValidatorActionForm extends ValidatorForm implements Serializable { /** - * Commons Logging instance. - */ - private static Log log = LogFactory.getLog(ValidatorActionForm.class); - - /** - * Validate the properties that have been set from this HTTP request, - * and return an <code>ActionErrors</code> object that encapsulates any - * validation errors that have been found. If no errors are found, return - * <code>null</code> or an <code>ActionErrors</code> object with no - * recorded error messages. + * Returns the Validation key. * * @param mapping The mapping used to select this instance * @param request The servlet request we are processing - * @return <code>ActionErrors</code> object that encapsulates any validation errors + * @return validation key - the action element's 'path' attribute in this case */ - public ActionErrors validate(ActionMapping mapping, - HttpServletRequest request) { - - ServletContext application = getServlet().getServletContext(); - ActionErrors errors = new ActionErrors(); - - Validator validator = Resources.initValidator(mapping.getPath(), - this, - application, request, - errors, page); - - try { - validatorResults = validator.validate(); - } catch (ValidatorException e) { - log.error(e.getMessage(), e); - } + public String getValidationKey(ActionMapping mapping, + HttpServletRequest request) { - return errors; + return mapping.getPath(); } } 1.14 +20 -5 jakarta-struts/src/share/org/apache/struts/validator/ValidatorForm.java Index: ValidatorForm.java =================================================================== RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/validator/ValidatorForm.java,v retrieving revision 1.13 retrieving revision 1.14 diff -u -r1.13 -r1.14 --- ValidatorForm.java 14 Mar 2004 06:23:47 -0000 1.13 +++ ValidatorForm.java 2 Apr 2004 14:30:57 -0000 1.14 @@ -101,7 +101,9 @@ ServletContext application = getServlet().getServletContext(); ActionErrors errors = new ActionErrors(); - Validator validator = Resources.initValidator(mapping.getAttribute(), + String validationKey = getValidationKey(mapping, request); + + Validator validator = Resources.initValidator(validationKey, this, application, request, errors, page); @@ -113,6 +115,19 @@ } return errors; + } + + /** + * Returns the Validation key. + * + * @param mapping The mapping used to select this instance + * @param request The servlet request we are processing + * @return validation key - the form element's name in this case + */ + public String getValidationKey(ActionMapping mapping, + HttpServletRequest request) { + + return mapping.getAttribute(); } /**
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]