カスタムバックエンドパラメータの検証注釈を休止

私が入ってくるオブジェクト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。

  

おすすめ

転載: www.cnblogs.com/418836844qqcom/p/11640810.html