jakarta.validationを使った簡単なバリデーションのアノテーションを作ってみます。
まずはアノテーションを作ります。
これ @Constraint(validatedBy = NameValidator.class) が肝で、NameValidatortというクラス内でバリデーションのチェックをします。
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = NameValidator.class)
public @interface ValidateName {
String message() default "Invalid name: must start with uppercase";
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
}
isValid関数内で値のチェックを行います。
public class NameValidator implements ConstraintValidator<ValidateName, String> {
@Override
public void initialize(ValidateName constraintAnnotation) {}
@Override
public boolean isValid(String name, ConstraintValidatorContext context) {
return name.matches("^[A-Z]");
}
}
コントローラーなどを書いて実行してみます。
できたもの
https://github.com/pbogawa/sampleValidate