ユーザー定義の列挙検証コメント
フロントエンドパラメータがある列挙値のシーンに属するかどうかを確認する必要がある場合に、列挙コメントをカスタマイズします。下のデモは他のブログからコピーしたもので、自分で使うだけです。前提:javalidationバッグは便利なカスタムチェックの入り口を提供しています。javax.validation.contraint Validatorです。
ステップ:
1.注釈を定義し、@Constrant(validatedBy=Order TypeValidator.class)で注釈があった場合の処理ロジックを指定します。即ち、処理ロジックはvalidatedByに指定されたクラスに書き込みます。2.注解ロジック類を書いた3.注解を使う
注釈インターフェース
ステップ:
1.注釈を定義し、@Constrant(validatedBy=Order TypeValidator.class)で注釈があった場合の処理ロジックを指定します。即ち、処理ロジックはvalidatedByに指定されたクラスに書き込みます。2.注解ロジック類を書いた3.注解を使う
注釈インターフェース
@Documented
@Constraint(validatedBy = {})
@Target({METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER})
@Retention(RUNTIME)
public @interface EnumValidateAnnotation {
/**
*
*
* @return
*/
String message() default "";
/**
*
*
* @return
*/
Class<?>[] groups() default {};
/**
*
*
* @return
*/
Class<? extends Payload>[] payload() default {};
/**
* , String
* @return
*/
String[] enums() default {};
}
検査器(Costraint Validatorインターフェースを実現するには、最初の泛型書き込みタイプ、例えばTCheck、第二の汎型書き込みチェックする値のタイプ)public class EnumStringValidator implements ConstraintValidator<EnumValidateAnnotation,String> {
private List<String> enumStrings;
@Override
public void initialize(EnumValidateAnnotation constraintAnnotation) {
enumStrings = Lists.newArrayList(constraintAnnotation.enums());
}
@Override
public boolean isValid(String value, ConstraintValidatorContext context) {
if (value == null) {
return false;
}
// Integer, String
return enumStrings.contains(value);
}
}
使用/**
*
* {@link FromEnum}
*/
@NotNull(message = " ")
// FromEnum String enums
// , , enums
@EnumValidateAnnotation(enums = {
"from1", "from2"}, message = " ")
String from;