Search code examples
java-ee-6bean-validation

Provide custom Validator for @Size


How could I provide a custom validator implementation for a built-in constraint like @Size? in a JavaEE6 JSF Web Application


Solution

  • Implement a ConstraintValidator<MyType, Size>, register it via an XML based constraint mapping:

    <constraint-mappings
        xmlns="http://jboss.org/xml/ns/javax/validation/mapping" version="1.1">
    
        <constraint-definition annotation="javax.validation.constraints.Size">
            <validated-by include-existing-validators="false">
                <value>org.mycompany.MySizeValidator</value>
            </validated-by>
        </constraint-definition>
    </constraint-mappings>
    

    and add this mapping to META-INF/validation.xml:

    <validation-config
        xmlns="http://jboss.org/xml/ns/javax/validation/configuration" version="1.1">
    
        <constraint-mapping>path/to/mapping.xml</constraint-mapping>
    </validation-config>
    

    You can learn more in the Hibernate Validator reference guide.