springmvc使⽤@notNull注解验证请求参数
spring mvc 使⽤@notNull 注解验证请求参数
处理请求时, 有些参数是必传或者必须遵循某些规则的, 如果针对每个请求都写⼀遍验证的话相当繁琐, ⽽且代码维护起来也⿇烦, 正好框架将参数校验的功能抽象处理啊了, 我们可以利⽤这个完成80%的校验场景
使⽤⽅式
使⽤起来很简单, 只需要加上⼏个注解即可
@NotNull
在需要验证的⾮空字段前⾯加上@NotNull注解(注解还可设置提⽰语), 如下
@Min
有写数值类型的需要限制范围, 例如: 时间需要⼤于0
@valid
在需要校验的接⼝的⼊参前加上@valid注解
验证⽣效
这两个地⽅加上注解就可以了
进阶
有时候默认的⾮空或者范围校验不能满⾜部分定制化的需求我们可以通过⾃定义校验注解来按我们的凡是校验数据
注解接⼝
定义⼀个⾃⼰的注解(检验逻辑⼊⼝)
注意:
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
这两个是必须的…
校验逻辑实现实现校验逻辑, 需要在⾃定义注解中指定使⽤的校验逻辑
@Constraint(validatedBy = CheckEvaluationKeyValidator.class)
系统就会更具注解⾃动进⼊我们的校验逻辑
⾃定义注解使⽤
其他校验注解@Target(
value = {METHOD , FIELD , ANNOTATION_TYPE })
@Retention(RUNTIME )
@Constraint(validatedBy = CheckEvaluationKeyValidator .class )
@Documented
public @interface CheckEvaluationKey {
String message () default "{CheckEvaluationKey}";
Class <?>[] groups () default {};
Class <? extends Payload >[] payload () default {};
String evaluationKey () default "";
}public
class CheckEvaluationKeyValidator implements ConstraintValidator <CheckEvaluationKey , String > { private String checkEvaluationKey ;
@Override
public void initialize (CheckEvaluationKey constraintAnnotation ) {
this .checkEvaluationKey = constraintAnnotation .evaluationKey ();
}
@Override
springmvc的注解有哪些public boolean isValid (String value , ConstraintValidatorContext context ) {
if (JudgeUtil .isNull (checkEvaluationKey )) {
String evaluationName = EvaluationEnum .getEvaluationNameWithOutAssert (value );
return JudgeUtil .isPresent (evaluationName );
} else {
return JudgeUtil .equals (value , checkEvaluationKey );
}
}
}
@Null: 被注释的元素必须为null
@NotNull: 被注释的元素不能为null
@AssertTrue: 被注释的元素必须为true
@AssertFalse: 被注释的元素必须为false
@Min(value): 被注释的元素必须是⼀个数字,其值必须⼤于等于指定的最⼩值
@Max(value): 被注释的元素必须是⼀个数字,其值必须⼩于等于指定的最⼤值
@DecimalMin(value): 被注释的元素必须是⼀个数字,其值必须⼤于等于指定的最⼩值@DecimalMax
(value): 被注释的元素必须是⼀个数字,其值必须⼩于等于指定的最⼤值@Size(max,min): 被注释的元素的⼤⼩必须在指定的范围内。
@Digits(integer,fraction): 被注释的元素必须是⼀个数字,其值必须在可接受的范围内@Past: 被注释的元素必须是⼀个过去的⽇期
@Future: 被注释的元素必须是⼀个将来的⽇期
@Pattern(value): 被注释的元素必须符合指定的正则表达式。
@Email: 被注释的元素必须是电⼦邮件地址
@Length: 被注释的字符串的⼤⼩必须在指定的范围内
@NotEmpty: 被注释的字符串必须⾮空
@Range: 被注释的元素必须在合适的范围内
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论