當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
JSR303自定义校验注解
生活随笔
收集整理的這篇文章主要介紹了
JSR303自定义校验注解
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
自定義校驗
1)、編寫一個自定義的校驗注解
2)、編寫一個自定義的校驗器 ConstraintValidator
3)、關聯自定義的校驗器和自定義的校驗注解* @Documented* @Constraint(validatedBy = { ListValueConstraintValidator.class【可以指定多個不同的校驗器,
適配不同類型的校驗】 })* @Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER, TYPE_USE })* @Retention(RUNTIME)* public @interface ListValue {
/*** 顯示狀態[0-不顯示;1-顯示]*/
@NotNull(groups = {AddGroup.class, UpdateStatusGroup.class})
@ListValue(vals={0,1},groups = {AddGroup.class, UpdateStatusGroup.class})
private Integer showStatus;
package com.leon.common.valid;import javax.validation.Constraint;
import javax.validation.Payload;
import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;import static java.lang.annotation.ElementType.*;
import static java.lang.annotation.ElementType.TYPE_USE;
import static java.lang.annotation.RetentionPolicy.RUNTIME;@Documented
@Constraint(validatedBy = { ListValueConstraintValidator.class })
@Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER, TYPE_USE })
@Retention(RUNTIME)
public @interface ListValue {String message() default "{com.leon.common.valid.ListValue.message}";Class<?>[] groups() default { };Class<? extends Payload>[] payload() default { };int[] vals() default { };
}
package com.leon.common.valid;import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
import java.util.HashSet;
import java.util.Set;public class ListValueConstraintValidator implements ConstraintValidator<ListValue,Integer> {private Set<Integer> set = new HashSet<>();//初始化方法@Overridepublic void initialize(ListValue constraintAnnotation) {int[] vals = constraintAnnotation.vals();for (int val : vals) {set.add(val);}}//判斷是否校驗成功/**** @param value 需要校驗的值* @param context* @return*/@Overridepublic boolean isValid(Integer value, ConstraintValidatorContext context) {return set.contains(value);}
}
?
總結
以上是生活随笔為你收集整理的JSR303自定义校验注解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 品牌管理-统一异常处理
- 下一篇: SET key value [EX se