rleland 2002/10/11 12:22:58 Modified: src/share/org/apache/struts/util StrutsValidator.java Log: Buzilla [10191] Allow Ranges for Floating point numbers Revision Changes Path 1.9 +50 -1 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.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- StrutsValidator.java 10 Oct 2002 17:51:20 -0000 1.8 +++ StrutsValidator.java 11 Oct 2002 19:22:58 -0000 1.9 @@ -592,11 +592,60 @@ if (!GenericValidator.isBlankOrNull(value)) { try { - double dValue = Integer.parseInt(value); + double dValue = Double.parseDouble(value); double min = Double.parseDouble(sMin); double max = Double.parseDouble(sMax); if (!GenericValidator.isInRange(dValue, min, max)) { + errors.add(field.getKey(), StrutsValidatorUtil.getActionError(request, va, field)); + + return false; + } + } catch (Exception e) { + errors.add(field.getKey(), StrutsValidatorUtil.getActionError(request, va, field)); + return false; + } + } + + return true; + } + + /** + * <p> + * + * Checks if a fields value is within a range (min & max specified in the + * vars attribute).</p> + * + *@param bean The bean validation is being performed on. + *@param va The <code>ValidatorAction</code> that is currently being performed. + *@param field The <code>Field</code> object associated with the current + * field being validated. + *@param errors The <code>ActionErrors</code> object to add errors to if any + * validation errors occur. + *@param request Current request object. + *@return True if in range, false otherwise. + */ + public static boolean validateFloatRange(Object bean, + ValidatorAction va, Field field, + ActionErrors errors, + HttpServletRequest request) { + + 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"); + + if (!GenericValidator.isBlankOrNull(value)) { + try { + float fValue = Float.parseFloat(value); + float min = Float.parseFloat(sMin); + float max = Float.parseFloat(sMax); + + if (!GenericValidator.isInRange(fValue, min, max)) { errors.add(field.getKey(), StrutsValidatorUtil.getActionError(request, va, field)); return false;
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>