##### Validator

- Overview
- Download
- Documentation
  - Release Notes
  - Dependencies
  - License
  - Framework
  - Routines
  - Wiki
- JavaDocs
  - Current Release
  - 1.3.0 Release
  - 1.2.0 Release
  - 1.1.4 Release
  - 1.0.2 Release
- JavaScript Doc

##### Development

- Mailing Lists
- Issue Tracking
- Latest JavaDoc
- Source Repository
- Building

##### Project Documentation

- About
- Project Info
- Project Reports
  - Checkstyle
  - Changes
  - Change Log
  - JavaDocs
  - JavaDoc Report
  - JavaDoc Warnings Report
  - Source Xref
  - Test Xref
  - Project License
  - Unit Tests
  - JCoverage
- Development Process

##### Commons

- Home
- Components
- Sandbox
- Dormant
- Volunteering
- Contributing Patches
- Building Components
- Releasing Components
- Wiki

##### Legend

- External Link
- Opens in a new window

## Release History

Version | Date | Description
--- | --- | ---
1.3.1 | 2006-11-28 | 1.3 Maintenance Release.
1.3.0 | 2006-03-24 | 1.3 Release - New 'routines' package plus Bug fixes for 1.2.0
1.2.0 | 2005-11-15 | 1.2 Release - see http://wiki.apache.org/jakarta-commons/ValidatorVersion120
1.1.4 | 2004-11-12 | 1.1 Maintenance Release.
1.1.3 | 2004-08-25 | 1.1 Release
1.1.2 (alpha) | 2004-04-03 | 1.1 Alpha
1.1.1 (alpha) | 2003-12-15 | 1.1 Alpha
1.1.0 (alpha) | 2003-08-26 | 1.1 Alpha
1.0.2 | 2003-04-17 | 1.0 Maintenance Release
1.0.1 | 2002-12-16 | 1.0 Maintenance Release
1.0 | 2002-11-01 | 1.0 Release

Get the RSS feed of the last changes

## Release 1.3.1 - 2006-11-28

Type | Changes | By
--- | --- | ---
| Dependencies: dependencies for Validator 1.3.1 are unchanged since the 1.3.0 release. N.B. Jakarta ORO has now been marked as an optional dependency in the project.xml as it is only required by the Email, URL and Regular Expression validations . | niallp
| JavaScript function jcv_isFieldPresent() causes error in IE5 using "undefined". Fixes VALIDATOR-208. Thanks to Leo Asanov. | niallp
| EmailValidator allows control characters (ASCII 0-31 and 127). Fixes VALIDATOR-190. Thanks to Cott and Gabriel Belingueres . | niallp
| JavaScript Causes HTML Page to Contain Illegal HTML. Fixes VALIDATOR-210. Thanks to Neil Sherman. | niallp
| Additional constructor for ValidatorResources that takes URL[ ] instead of String[ ] . Fixes VALIDATOR-209. Thanks to Craig McClanahan. | niallp
| Fix loading of Digester rules for custom ValidatorResources implementations. Fixes VALIDATOR-195. Thanks to Vijay Pandey. | niallp
| Validator incorrectly storing itself under the FORM_PARAM key rather than the Form. Fixes VALIDATOR-19. Thanks to Masahiro Honda. | niallp
| Urlvalidator returns false for a valid URL containing an underscore. Fixes VALIDATOR-204. Thanks to Ben. | bayard
| Urlvalidator fails with an ArrayIndexOutOfBoundsException. Fixes VALIDATOR-202. Thanks to Ben. | bayard
| The ant build.xml doesn't include validator_1_1_3.dtd in the jar. Fixes VALIDATOR-199. Thanks to Tim Mulligan. | niallp
| Example does not compile using ant build script. Fixes VALIDATOR-198. Thanks to Matthias Fischer. | niallp
| Validating indexed properties fails when `null` . Fixes VALIDATOR-189. Thanks to Thomas Bailey. | niallp
| Fix a thread safety issue in parameter initialization. Fixes VALIDATOR-89. Thanks to Takayuki Kaneko. | martinc

## Release 1.3.0 - 2006-03-24

Type | Changes | By
--- | --- | ---
| ValidatorResult only contains last run dependency for the field. Fixes VALIDATOR-49. Thanks to bart vandendriessche. | niallp
| Validator argument - resource="false" ignored for arg0 - arg3. Fixes VALIDATOR-20. Thanks to Rostislav Palivoda. | niallp
| Change JavaScript validators to cater for disabled being undefined (an issue in Netscape 4.7). Fixes VALIDATOR-60. Thanks to Yugandhar. | niallp
| Add new routines package containing standard validations - first step in the process of clearly separating standard validation functions which can be used independantly, from the framework aspect of Commons Validator. New validators added for Date, Time, Calendar, Byte, Short, Integer, Long, Float, Double, BigInteger, BigDecimal, Currency and Percent. See Routines Package JavaDocs | niallp
| Deprecate ValidatorResult's getActionMap() and add getActions() method to provide an Iterator of the set of action names. Fixes VALIDATOR-30. | niallp
| Use the Dojo/Rhino JavaScript compressor to created compressed versions of the static JavaScript files. Additionally create single file distros of all the static JavaS cript in un-compressed and compressed format. See Dojo/Rhino Compressor . Fixes VALIDATOR-142. Thanks to Michael Rush. | niallp
| Prefix remaining JavaScript utility methods with "jcv_" to reduce the likelihood of clashes with other libraries - validator still needs to be properly namespaced (as per Bug 38184). | niallp
| Change JavaScript validators so that they don't fail when the field is not present on the form. Fixes VALIDATOR-163. Thanks to Andrew Berridge and Paul Benedict . | niallp
| Fix min/max length validation for different line endings. Fixes VALIDATOR-25. Thanks to Alan Olmanson. | niallp
| Fix email validator to not allow spaces at the end of the user component or start of the domain component. Fixes VALIDATOR-50. Thanks to Stephanie Codron. | niallp
| Added validator_1_3_0.dtd and changed form rules so that a minimum of one field is no longer required (i.e. changed (field+) to (field*) for a form). Fixes VALIDATOR-77. Thanks to Neale. | niallp
| Resolve issue in JavaScript validation when the prototype library is used. Fixes VALIDATOR-109. Thanks to Philippe Mouawad. | niallp
| Re-factor JavaScript error handling into a common method and only set focus on fields which are not 'hidden' type or hidden by CSS. Fixes VALIDATOR-97 and VALIDATOR-81 . Thanks to Matt Bathje and Paul Benedict . | niallp
| Remove static Log instances to avoid pr oblems if deployed via a shared classloader in a container. See here for more details. | niallp
| Reverse change for to Credit Card Validator for visa card blue in France. Fixes VALIDATOR-39. | niallp
| Fix JavaScript validation for Internet Explorer 5.0. Fixes VALIDATOR-18. Thanks to Kristian L. Petersen. | niallp

## Release 1.2.0 - 2005-11-15

Type | Changes | By
--- | --- | ---
| Added ISBNValidator for validating book numbers. Fixes VALIDATOR-145. | dgraham
| Upgrade dependency versions to Commons BeanUtils 1.7.0, Commons Digester 1.6 and Commons Logging 1.0.4. Remove dependency on Commons Collections (BeanUtils 1.7.0 has removed its dependency on Collections by including the few Collections classes required in its distribution). | dgraham
| Add support for min or max numeric values. Fixes VALIDATOR-135. | husted
| Allow validators to register errors for multiple fields. Fixes VALIDATOR-137. | husted
| Fixed EmailValidator failing on valid email addresses. Fixes VALIDATOR-85. | husted
| Allow forms to inherit validation rules from other forms. Fixes VALIDATOR-132. | rleland
| Remove the need to specify an Arguement's position. Fixes VALIDATOR-166. | niallp
| Deprecated all FastHashMap usage and provided protected get methods that return generic Maps to be used by subclasses. Fixes VALIDATOR-185. | dgraham
| Handling of float and double should use the locale object. Fixes 21282 Fixes VALIDATOR-124 . | mrdon
| More informative Exception message when validation method not found. Fixes VALIDATOR-181. | mrdon
| Client-side required validation inconsistent with server-side. Fixes VALIDATOR-148. | mrdon
| EmailValidator allows apostrophes in domain name. Fixes VALIDATOR-101. | mrdon
| Changing the strategy for locating form name/id, now use a common utility function which works in both IE and Firefox. Fixes 35127 and 32760 | mrdon
| Validation fails when "name" attribute in form not specified. Fixes VALIDATOR-80 and VALIDATOR-73 . | mrdon
| UrlValidator fails http://www.google.com. Fixes VALIDATOR-27. | mrdon
| Email: inexisting dashes and TLD erroneously accepted. Fixes VALIDATOR-114 and VALIDATOR-44 . | mrdon
| Flo at validator can't validate the string with several dot. Fixes VALIDATOR-1. | mrdon
| CreditValidator does not handle Visa correctly. Fixes VALIDATOR-39. | mrdon
| datePattern not supported by JavaScript. Fixes VALIDATOR-32. | mrdon
| validateRequired on a single radio button. Fixes VALIDATOR-6. | mrdon
| Field.validate() cannot be invoked from user-defined code. Fixes VALIDATOR-158. | mrdon
| Locale validation doesn't validate all fields. Fixes VALIDATOR-61 and VALIDATOR-179 . | mrdon
| XML file included into validation.xml via entity reference not found. Fixes VALIDATOR-161. | mrdon
| Update maven build to Include DTDs and xdocs in the source distribution. Fixes VALIDATOR-117. | niallp
| Remove logging of exceptions when the Date validation fails (correctly) with an invalid date. | niallp
| Add version 1.1.3 of the DTD from the VALIDATOR_1_1_2_BRANCH and change digester rules so that the old arg0-arg3 values are not ignored for versions of the DTD prior to 1.2.0. | niallp
| Add 'resource' and 'bundle' elements to the 1.2.0 DTD. Fixes VALIDATOR-108. | niallp
| Provide access to the result object in ValidatorResult. Fixes VALIDATOR-172. | niallp
| Validation breaks on multiple validation.xml (eg. with Struts 1.3). Fixes VALIDATOR-75. | niallp
| GenericTypeValidator does not accept negative Floats/Doubles. Fixes VALIDATOR-86. | niallp
| correct UrlValidator JavaDoc. Fixes VALIDATOR-48. | niallp
| Search the locale 'hierarchy' of formsets for a Form. Fixes VALIDATOR-3. | niallp
| Int validation in Java and Javascript have different semantics. Fixes VALIDATOR-59. | niallp
| Javascript Validation currently uses unsupported DOM method getAttributeNode(). Fixes VALIDATOR-33. | niallp

## Release 1.1.4 - 2004-11-12

Type | Changes | By
--- | --- | ---
| Added getMessage(key) and getMessages() methods to Field Fixes VALIDATOR-175. | niallp
| Added resource property (including getter/setter) to Msg to support the 'resource' attribute specified in the DTD. | niallp

## Release 1.1.3 - 2004-08-25

Type | Changes | By
--- | --- | ---
| Fixed javascript file reading in Java WebStart environment. Fixes VALIDATOR-16. | dgraham
| Fixed javascript email domain length limited to 2 or 3 chars. Fixes VALIDATOR-54. | mrdon

## Release 1.1.2 (alpha) - 2004-04-03

Type | Changes | By
--- | --- | ---
| Javascript validation doesn't work if a form field is called "name". Fixes VALIDATOR-24. | rleland
| Allow multiple forms to be on the same page by generating a unique variable name based on form name. Fixes 17667 | rleland
| Validate file extensions for file uploads. Fixes VALIDATOR-152. | rleland
| Add Support for hidden fields in javascript validations. Fixes VALIDATOR-183. | rleland
| The framework will convert checked exceptions into ValidatorExceptions so any ValidatorException thrown out of the framework indicates a 'system' exception that stops validation processing. If a pluggable validation method throws a ValidatorException it will be rethrown and passed out of the framework. Any other exception from a pluggable validation method is still considered a validation failure rather than a system exception to maintain backwards compatibility. Fixes VALIDATOR-14. | dgraham
| Added a more flexible card validation system that doesn't require CreditCardValidator to support every brand of credit card. Fixes VALIDATOR-174. | dgraham
| Throw RuntimeException if clone fails instead of InternalError. | dgraham
| Added Flags.clear(). | dgraham

## Release 1.1.1 (alpha) - 2003-12-15

Type | Changes | By
--- | --- | ---
| Add javadoc to javascript, and use jsdoc to process it. | rleland
| Ignore validation criteria when field is disabled for all field types. | rleland
| Add required check for single checkbox. | rleland
| Let max/min length also cover passwords fields. Don't use these for checking login pages, only when the user is modifying the password. | rleland
| Added Field.getArgs(String) to make it easier to retrieve all of the Args for a given validator. | dgraham
| Modify javascript to honor datapattern option. | rleland
| Add ability of required to handle checkboxes, radio, select-one, and select-multiple field types. | rleland
| Add ability to use required condition on array types like checkboxes. | rleland

## Release 1.1.0 (alpha) - 2003-08-26

Type | Changes | By
--- | --- | ---
| Move Digester rule configuration to XML file and remove ValidatorResourcesInitializer. ValidatorResources now knows how to initialize itself. | dgraham
| Clean up scopes of methods and variables. | dgraham
| Make Arg system more flexible to allow any number of args in a message. | dgraham
| Validate validation.xml files while initializing a Validator to alert developers to configuration errors. | dgraham
| Refactored `GenericValidator` methods into reusable objects. These include: CreditCardValidator, EmailValidator, DateValidator, and UrlValidator. | dgraham
| Backwards Incompatible Changes < msg > 's name and key attributes are now required. The Va lidator code was enforcing this constraint so now it's formally defined in the DTD. | dgraham
| Deprecated items; see the javadoc for details and replacements. The < arg0-3 > elements have been replaced with a single < arg > element with a new `position` attribute. Setting position to 0 is the equivalent of an < arg0 > element. `Arg.getResource()` `CreditCardValidator.isValidPrefix()` `Field.ARG_DEFAULT` `Field.hDependencies` `Field.hArg0 - Field.hArg3` `Field.addArg0() - Field.addArg3()` `Field.getArg0() - Field.getArg3()` `Field.addVarParam()` `Field.process()` `Field.processMessageComponents()` `Field.getDependencies()` `Form.getFieldMap()` `Form.process()` `FormSet.addConstant()` `FormSet.addConstantParam()` `FormSet.getForm(Object)` `FormSet.process()` `GenericValidator.REGEXP_DELIM` `GenericValidator.validateCreditCardLuhnCheck()` `GenericValidator.validateCreditCardPrefixCheck()` `GenericValidator.getDelimittedRegExp()` `Validator.BEAN_KEY` `Validator.VALIDATOR_ACTION_KEY` `Validator.FIELD_KEY` `Validator.VALIDATOR_KEY` `Validator.LOCALE_KEY` `Validator.hResources` `Validator.addResource()` `Validator.getResource()` `ValidatorAction.process()` `ValidatorAction.getDependencies()` `ValidatorResources.put()` `ValidatorResources.addConstant()` `ValidatorResources.addConstantParam()` `ValidatorResources.get()` `ValidatorResources.processForms()` `ValidatorResourcesInitializer` `ValidatorResult.getValid()` `ValidatorResults.empty()` `ValidatorResults.get()` `ValidatorResults.properties()` `ValidatorUtil` | dgraham

## Release 1.0.2 - 2003-04-17

Type | Changes | By
--- | --- | ---
| GenericValidaor.isEmail bug. Fixes VALIDATOR-93. Thanks to Scott Clasen. | turner
| NPE in Validator.java after upgrading to Struts 1.1b3. Fixes VALIDATOR-94. Thanks to Jeremy Tan. | dgraham
| i18n issue, variant not being picked up by Validator. Fixes VALIDATOR-62. Thanks to Jeremy Tan. | turner
| isEmail accepts Umlauts and other non-ASCII characters. Fixes VALIDATOR-53. Thanks to Thomas Jacob. | turner
| Email address validation incorrectly accepts commas. Fixes VALIDATOR-104. Thanks to Erik Hatcher. | dgraham
| unknown host when loading app. Fixes VALIDATOR-36. Thanks to Didier Romelot. | dgraham

## Release 1.0.1 - 2002-12-16

Type | Changes | By
--- | --- | ---
| Serialization problem with org.apache.commons.validator.ValidatorResult$ResultStatus. Fixes VALIDATOR-84. Thanks to Pierre Chardin. | martinc
| ValidatorResources.get-method not working properly. Fixes VALIDATOR-68. Thanks to Bjorn-H. Moritz. | turner

## Release 1.0 - 2002-11-01

Type | Changes | By
--- | --- | ---
| First Release. |