Class DateRangeFieldValidator

All Implemented Interfaces:
FieldValidator, ShortCircuitableValidator, Validator

public final class DateRangeFieldValidator extends RangeValidatorSupport<Date>
Field Validator that checks if the date supplied is within a specific range. NOTE: If no date converter is specified, XWorkBasicConverter will kick in to do the date conversion, which by default using the Date.SHORT format using the a problematically specified locale else falling back to the system default locale.
  • fieldName - The field name this validator is validating. Required if using Plain-Validator Syntax otherwise not required
  • min - the min date range. If not specified will not be checked.
  • max - the max date range. If not specified will not be checked.
  • parse - if set to true, minExpression and maxExpression will be evaluated to find min/max
  • minExpression - expression to calculate the minimum value (if none is specified, it will not be checked)
  • maxExpression - expression to calculate the maximum value (if none is specified, it will not be checked)
You can either use the min / max value or minExpression / maxExpression (when parse is set to true) - using expression can be slightly slower, see the example below. Do not use ${minExpression} and ${maxExpression} as an expression as this will turn into infinitive loop!
 
 <validators>
     <!-- Plain Validator syntax -->
     <validator type="date">
         <param name="fieldName">birthday</param>
         <param name="min">01/01/1990</param>
         <param name="max">01/01/2000</param>
         <message>Birthday must be within ${min} and ${max}</message>
     </validator>

     <!-- Field Validator Syntax -->
     <field name="birthday">
         <field-validator type="date">
           <param name="min">01/01/1990</param>
             <param name="max">01/01/2000</param>
             <message>Birthday must be within ${min} and ${max}</message>
           </field>
     </field>

     <!-- Field Validator Syntax with expression -->
     <field name="birthday">
         <field-validator type="date">
             <param name="minExpression">${minValue}</param> <!-- will be evaluated as: Date getMinValue() -->
             <param name="maxExpression">${maxValue}</param> <!-- will be evaluated as: Date getMaxValue() -->
             <message>Age needs to be between ${min} and ${max}</message>
         </field-validator>
     </field>
 </validators>
 
 
Author:
Jason Carreira
  • Constructor Details

    • DateRangeFieldValidator

      public DateRangeFieldValidator()