私が入ってくるオブジェクトInteger型のプロパティのフロントエンドを検証したいです
1.新しいアノテーションクラスを作成します@FlagValidator
輸入javax.validation.Constraint。 輸入javax.validation.Payload。 輸入java.lang.annotation *。; / ** *用户验证状态是否在指定范围内的注解 * / @Documented @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.FIELD、ElementType.PARAMETER}) @Constraint(validatedBy = FlagValidatorClass.class) 公衆@interface FlagValidator { 文字列[]の値()デフォルト{}。 文字列メッセージ()デフォルト「フラグが見つかりません」。 <?>クラス[]グループ()デフォルト{}。 クラス<?ペイロード> []ペイロード()デフォルト{}延びています。 }
2.達成ConstraintValidatorを継承する新しいクラスを作成します。
輸入javax.validation.ConstraintValidator。 輸入javax.validation.ConstraintValidatorContext; / ** * @description TODO *の@author xjy * @Date 2019年9月29日 * / publicクラスFlagValidatorClassはConstraintValidator <FlagValidator、整数> {実装 プライベート文字列[]の値を、 @Override 公共ボイドイニシャライズ(FlagValidator flagValidator){ 値= flagValidator.value()。 } //下面的判断逻辑、値是注解里面的值、値是属性的值 @Override パブリックブールのisValid(整数値、ConstraintValidatorContext constraintValidatorContext){ ブールのisValid = FALSE; IF(値== NULL){ trueを返します。 } ため(; iはvalues.lengthを<; I = 0 int型私は++){ IF(値[I] .equals(String.valueOf(値))){ のisValid = TRUE。 ブレーク; } } 戻りのisValid。 } }
3.
@FlagValidator(値= { "1" 、 "5"}、メッセージは= " 正しい状態を入力してください") プライベートステータス=整数1。