Spring MVC Custom Validator

This commit is contained in:
root
2017-03-17 13:57:34 -04:00
parent f2f8839708
commit e7e6326a00
8 changed files with 207 additions and 5 deletions
@@ -0,0 +1,22 @@
package com.baeldung.customvalidator;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import javax.validation.Constraint;
import javax.validation.Payload;
@Documented
@Constraint(validatedBy = ContactNumberValidator.class)
@Target( { ElementType.METHOD, ElementType.FIELD })
@Retention(RetentionPolicy.RUNTIME)
public @interface ContactNumberConstraint {
String message() default "Invalid phone number";
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
}
@@ -0,0 +1,19 @@
package com.baeldung.customvalidator;
import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
public class ContactNumberValidator implements ConstraintValidator<ContactNumberConstraint, String> {
@Override
public void initialize(ContactNumberConstraint contactNumber) {}
@Override
public boolean isValid(String contactField, ConstraintValidatorContext cxt) {
if(contactField == null) {
return false;
}
return contactField.matches("[0-9]+") && (contactField.length() > 8) && (contactField.length() < 14);
}
}