craigmcc 2002/07/18 21:02:06 Modified: . STATUS src/share/org/apache/struts/util StrutsValidator.java Log: Make StrutsValidator validators work with indexed string values. PR: Bugzilla #10919 Submitted by: James Turner <turner at blackbear.com> Thanks for the patch! Revision Changes Path 1.31 +2 -3 jakarta-struts/STATUS Index: STATUS =================================================================== RCS file: /home/cvs/jakarta-struts/STATUS,v retrieving revision 1.30 retrieving revision 1.31 diff -u -r1.30 -r1.31 --- STATUS 19 Jul 2002 03:30:19 -0000 1.30 +++ STATUS 19 Jul 2002 04:02:05 -0000 1.31 @@ -6,7 +6,7 @@ OUTSTANDING BUGS IN STRUTS 1.1-b1 AND NIGHTLY BUILDS ==================================================== - 20 open bugs to swat!! + 18 open bugs to swat!! Controller: @@ -65,7 +65,6 @@ 10584 Not all validation files are read in Validation PlugIn 10782 If two fields are required, and one has a mask, the mask is not checked if the other field is blank 10868 Validator does not support non-default resource bundles -10919 PATCH: ValidatorUtils can't handle StringArrays Web Site: 1.5 +126 -39 jakarta-struts/src/share/org/apache/struts/util/StrutsValidator.java Index: StrutsValidator.java =================================================================== RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/util/StrutsValidator.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- StrutsValidator.java 30 Jun 2002 03:28:46 -0000 1.4 +++ StrutsValidator.java 19 Jul 2002 04:02:06 -0000 1.5 @@ -101,19 +101,24 @@ ActionErrors errors, HttpServletRequest request) { - String value = null; - if (field.getProperty() != null && field.getProperty().length() > 0) - value = ValidatorUtil.getValueAsString(bean, field.getProperty()); - - if (GenericValidator.isBlankOrNull(value)) { - errors.add(field.getKey(), StrutsValidatorUtil.getActionError(request, va, field)); + String value = null; + if (isString(bean)) { + value = (String) bean; + } else { + value = ValidatorUtil.getValueAsString(bean, field.getProperty()); + } + if (GenericValidator.isBlankOrNull(value)) { + errors.add(field.getKey(), + StrutsValidatorUtil.getActionError(request, va, field)); + + return false; + } else { + return true; + } - return false; - } else { - return true; - } } + /** * <p>Checks if the field matches the regular expression in the field's mask attribute.</p> * @@ -130,25 +135,30 @@ ActionErrors errors, HttpServletRequest request) { - String mask = field.getVarValue("mask"); - - if (field.getProperty() != null && field.getProperty().length() > 0) { - String value = ValidatorUtil.getValueAsString(bean, field.getProperty()); - - try { - if (!GenericValidator.isBlankOrNull(value) && !GenericValidator.matchRegexp(value, mask)) { - errors.add(field.getKey(), StrutsValidatorUtil.getActionError(request, va, field)); - - return false; - } else { - return true; - } + String mask = field.getVarValue("mask"); + String value = null; + if (isString(bean)) { + value = (String) bean; + } else { + value = ValidatorUtil.getValueAsString(bean, + field.getProperty()); + } + try { + if (!GenericValidator.isBlankOrNull(value) && + !GenericValidator.matchRegexp(value, mask)) { + errors.add(field.getKey(), + StrutsValidatorUtil.getActionError(request, va, + field)); + + return false; + } else { + return true; + } } catch (Exception e) { - LOG.error(e.getMessage(), e); + LOG.error(e.getMessage(), e); } - } + return true; - return true; } @@ -169,7 +179,12 @@ HttpServletRequest request) { Byte result = null; - String value = ValidatorUtil.getValueAsString(bean, field.getProperty()); + String value = null; + if (isString(bean)) { + value = (String) bean; + } else { + value = ValidatorUtil.getValueAsString(bean, field.getProperty()); + } if (!GenericValidator.isBlankOrNull(value)) { result = GenericTypeValidator.formatByte(value); @@ -198,7 +213,12 @@ ActionErrors errors, HttpServletRequest request) { Short result = null; - String value = ValidatorUtil.getValueAsString(bean, field.getProperty()); + String value = null; + if (isString(bean)) { + value = (String) bean; + } else { + value = ValidatorUtil.getValueAsString(bean, field.getProperty()); + } if (!GenericValidator.isBlankOrNull(value)) { result = GenericTypeValidator.formatShort(value); @@ -227,7 +247,12 @@ ActionErrors errors, HttpServletRequest request) { Integer result = null; - String value = ValidatorUtil.getValueAsString(bean, field.getProperty()); + String value = null; + if (isString(bean)) { + value = (String) bean; + } else { + value = ValidatorUtil.getValueAsString(bean, field.getProperty()); + } if (!GenericValidator.isBlankOrNull(value)) { result = GenericTypeValidator.formatInt(value); @@ -256,7 +281,12 @@ ActionErrors errors, HttpServletRequest request) { Long result = null; - String value = ValidatorUtil.getValueAsString(bean, field.getProperty()); + String value = null; + if (isString(bean)) { + value = (String) bean; + } else { + value = ValidatorUtil.getValueAsString(bean, field.getProperty()); + } if (!GenericValidator.isBlankOrNull(value)) { result = GenericTypeValidator.formatLong(value); @@ -285,7 +315,12 @@ ActionErrors errors, HttpServletRequest request) { Float result = null; - String value = ValidatorUtil.getValueAsString(bean, field.getProperty()); + String value = null; + if (isString(bean)) { + value = (String) bean; + } else { + value = ValidatorUtil.getValueAsString(bean, field.getProperty()); + } if (!GenericValidator.isBlankOrNull(value)) { result = GenericTypeValidator.formatFloat(value); @@ -314,7 +349,12 @@ ActionErrors errors, HttpServletRequest request) { Double result = null; - String value = ValidatorUtil.getValueAsString(bean, field.getProperty()); + String value = null; + if (isString(bean)) { + value = (String) bean; + } else { + value = ValidatorUtil.getValueAsString(bean, field.getProperty()); + } if (!GenericValidator.isBlankOrNull(value)) { result = GenericTypeValidator.formatDouble(value); @@ -350,8 +390,13 @@ ActionErrors errors, HttpServletRequest request) { - Date result = null; - String value = ValidatorUtil.getValueAsString(bean, field.getProperty()); + Date result = null; + String value = null; + if (isString(bean)) { + value = (String) bean; + } else { + value = ValidatorUtil.getValueAsString(bean, field.getProperty()); + } String datePattern = field.getVarValue("datePattern"); String datePatternStrict = field.getVarValue("datePatternStrict"); Locale locale = StrutsValidatorUtil.getLocale(request); @@ -397,7 +442,12 @@ ActionErrors errors, HttpServletRequest request) { - String value = ValidatorUtil.getValueAsString(bean, field.getProperty()); + String value = null; + if (isString(bean)) { + value = (String) bean; + } else { + value = ValidatorUtil.getValueAsString(bean, field.getProperty()); + } String sMin = field.getVarValue("min"); String sMax = field.getVarValue("max"); @@ -440,7 +490,12 @@ HttpServletRequest request) { Long result = null; - String value = ValidatorUtil.getValueAsString(bean, field.getProperty()); + String value = null; + if (isString(bean)) { + value = (String) bean; + } else { + value = ValidatorUtil.getValueAsString(bean, field.getProperty()); + } if (!GenericValidator.isBlankOrNull(value)) { result = GenericTypeValidator.formatCreditCard(value); @@ -471,7 +526,12 @@ ActionErrors errors, HttpServletRequest request) { - String value = ValidatorUtil.getValueAsString(bean, field.getProperty()); + String value = null; + if (isString(bean)) { + value = (String) bean; + } else { + value = ValidatorUtil.getValueAsString(bean, field.getProperty()); + } if (!GenericValidator.isBlankOrNull(value) && !GenericValidator.isEmail(value)) { errors.add(field.getKey(), StrutsValidatorUtil.getActionError(request, va, field)); @@ -498,7 +558,12 @@ ActionErrors errors, HttpServletRequest request) { - String value = ValidatorUtil.getValueAsString(bean, field.getProperty()); + String value = null; + if (isString(bean)) { + value = (String) bean; + } else { + value = ValidatorUtil.getValueAsString(bean, field.getProperty()); + } String sMaxLength = field.getVarValue("maxlength"); if (value != null) { @@ -537,7 +602,12 @@ ActionErrors errors, HttpServletRequest request) { - String value = ValidatorUtil.getValueAsString(bean, field.getProperty()); + String value = null; + if (isString(bean)) { + value = (String) bean; + } else { + value = ValidatorUtil.getValueAsString(bean, field.getProperty()); + } String sMinLength = field.getVarValue("minlength"); if (value != null) { @@ -557,5 +627,22 @@ return true; } + + + /** + * <p>Return <code>true</code> if the specified object is a String or + * a <code>null</code> value.</p> + * + * @param o Object to be tested + */ + private static boolean isString(Object o) { + + if (o == null) { + return (true); + } + return (String.class.isInstance(o)); + + } + }
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>