美文网首页
Validated校验数据

Validated校验数据

作者: 阿杰_96c5 | 来源:发表于2020-10-22 09:17 被阅读0次

    1. bean 中添加标签

    public class DormInfo extends BaseEntity {
    
        /**
         *  ID 自增长主键
         */
        private int id;
    
        /**
         *  宿舍代码
         */
        @NotBlank(message = "宿舍代码不能为空")
        private String dormNo;
    
        /*宿舍id*/
        @Min(value = 1,message = "宿舍不能为空")
        private int dormId;
    }
    

    2. Controller中开启验证

    @PostMapping("add")
    public AjaxResult addDormInfo(@Validated @RequestBody DormInfo dormInfo){
    
    
        return toAjax(dormInfoService.innerDormInfo(dormInfo));
    }
    

    3. 自定义异常处理器,捕获错误信息

    @RestControllerAdvice
    public class GlobalExceptionHandler
    {
        /**
         * 自定义验证异常
         */
        @ExceptionHandler(MethodArgumentNotValidException.class)
        public Object validExceptionHandler(MethodArgumentNotValidException e)
        {
            log.error(e.getMessage(), e);
            String message = e.getBindingResult().getFieldError().getDefaultMessage();
            return AjaxResult.error(message);
        }
    }
    

    附上部分标签含义

    限制 说明
    @Null 限制只能为null
    @NotNull 限制必须不为null
    @AssertFalse 限制必须为false
    @AssertTrue 限制必须为true
    @DecimalMax(value) 限制必须为一个不大于指定值的数字
    @DecimalMin(value) 限制必须为一个不小于指定值的数字
    @Digits(integer,fraction) 限制必须为一个小数,且整数部分的位数不能超过integer,小数部分的位数不能超过fraction
    @Future 限制必须是一个将来的日期
    @Max(value) 限制必须为一个不大于指定值的数字
    @Min(value) 限制必须为一个不小于指定值的数字
    @Past 限制必须是一个过去的日期
    @Pattern(value) 限制必须符合指定的正则表达式
    @Size(max,min) 限制字符长度必须在min到max之间
    @Past 验证注解的元素值(日期类型)比当前时间早
    @NotEmpty 验证注解的元素值不为null且不为空(字符串长度不为0、集合大小不为0)
    @NotBlank 验证注解的元素值不为空(不为null、去除首位空格后长度为0),不同于@NotEmpty,@NotBlank只应用于字符串且在比较时会去除字符串的空格
    @Email 验证注解的元素值是Email,也可以通过正则表达式和flag指定自定义的email格式

    相关文章

      网友评论

          本文标题:Validated校验数据

          本文链接:https://www.haomeiwen.com/subject/tihumktx.html