date validator
Description
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.
Parameters
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.
Warning Do not use
${minExpression}
and${maxExpression}
as an expression as this will turn into infinitive loop!
Examples
<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-validator>
</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>