Class RegexFieldValidator

All Implemented Interfaces:
FieldValidator, ShortCircuitableValidator, Validator
Direct Known Subclasses:
CreditCardValidator, EmailValidator

public class RegexFieldValidator extends FieldValidatorSupport
Validates a string field using a regular expression.
  • fieldName - The field name this validator is validating. Required if using Plain-Validator Syntax otherwise not required
  • regexp - The RegExp expression
  • caseSensitive - Boolean (Optional). Sets whether the expression should be matched against in a case-sensitive way. Default is true.
  • trim - Boolean (Optional). Sets whether the expression should be trimmed before matching. Default is true.
  • regexExpression - String (Optional). Defines regExp expression as an OGNL expression - will be evaluated to String
  • caseSensitiveExpression - String (Optional). Defines caseSensitive param as an OGNL expression - will be evaluated to Boolean.
  • trimExpression - String (Optional). Defines trim param as an OGNL expression - will be evaluated to Boolean

You can mix normal params with expression aware params but thus was not tested

Do not use ${regexExpression}, ${caseSensitiveExpression} and ${trimExpression} as an expression as this will turn into infinitive loop!

 
 <validators>
     <!-- Plain Validator Syntax -->
     <validator type="regex">
         <param name="fieldName">myStrangePostcode</param>
         <param name="regex"><![CDATA[([aAbBcCdD][123][eEfFgG][456])]]></param>
     </validator>

     <!-- Field Validator Syntax -->
     <field name="myStrangePostcode">
         <field-validator type="regex">
             <param name="regex"><![CDATA[([aAbBcCdD][123][eEfFgG][456])]]></param>
         </field-validator>
     </field>

     <!-- Field Validator Syntax with expressions -->
     <field name="myStrangePostcode">
         <field-validator type="regex">
             <param name="regexExpression">${regexValue}</param> <!-- will be evaluated as: String getRegexValue() -->
             <param name="caseSensitiveExpression">${caseSensitiveValue}</param> <!-- will be evaluated as: boolean getCaseSensitiveValue() -->
             <param name="trimExpression">${trimValue}</param> <!-- will be evaluated as: boolean getTrimValue() -->
         </field-validator>
     </field>
 </validators>
 
 
Author:
Quake Wang
  • Constructor Details

    • RegexFieldValidator

      public RegexFieldValidator()
  • Method Details

    • validate

      public void validate(Object object) throws ValidationException
      Description copied from interface: Validator
      The validation implementation must guarantee that setValidatorContext will be called with a non-null ValidatorContext before validate is called.
      Parameters:
      object - the object to be validated.
      Throws:
      ValidationException - is thrown if there is validation error(s).
    • validateFieldValue

      protected void validateFieldValue(Object object, String value, String regexToUse)
    • getRegex

      public String getRegex()
      Returns:
      Returns the regular expression to be matched.
    • setRegex

      public void setRegex(String regex)
      Parameters:
      regex - the regular expression to be matched
    • setRegexExpression

      public void setRegexExpression(String regexExpression)
      Parameters:
      regexExpression - the regular expression as an OGNL expression to be matched
    • isCaseSensitive

      public boolean isCaseSensitive()
      Returns:
      Returns whether the expression should be matched against in a case-sensitive way. Default is true.
    • setCaseSensitive

      public void setCaseSensitive(Boolean caseSensitive)
      Parameters:
      caseSensitive - whether the expression should be matched against in a case-sensitive way. Default is true.
    • setCaseSensitiveExpression

      public void setCaseSensitiveExpression(String caseSensitiveExpression)
      Parameters:
      caseSensitiveExpression - Allows specify caseSensitive param as an OGNL expression
    • isTrimed

      public boolean isTrimed()
      Returns:
      Returns whether the expression should be trimed before matching. Default is true.
    • setTrim

      public void setTrim(Boolean trim)
      Parameters:
      trim - whether the expression should be trimed before matching. Default is true.
    • setTrimExpression

      public void setTrimExpression(String trimExpression)
      Allows specify trim param as an OGNL expression
      Parameters:
      trimExpression - trim param as an OGNL expression