• @Valid注解


    分类 限制 说明
    空和非空检查 @Null 限制只能为null
    @NotNull 限制必须不为null
    @NotEmpty 验证注解的元素值不为null且不为空(字符串长度不为0、集合大小不为0)
    @NotBlank 验证注解的元素值不为空(不为null、去除首位空格后长度为0),不同于@NotEmpty,@NotBlank只应用于字符串且在比较时会去除字符串的空格
    Boolean值得检查 @AssertFalse 限制必须为false
    @AssertTrue 限制必须为true
    长度检查 @Size(max,min) 限制字符长度必须在min到max之间
    日期检查 @Past 检验日期为当期日期之前
    @Future 检验日期为当期日期之后
    @PastOrPresent 校验日期为当前日期或之后
    数值检查 @Max(value) 限制必须为一个不大于指定值的数字
    @Min(value) 限制必须为一个不小于指定值的数字
    @DecimalMax(value) 限制必须为一个不大于指定值的数字
    @DecimalMin(value) 限制必须为一个不小于指定值的数字
    @Digits(integer,fraction) 限制必须为一个小数,且整数部分的位数不能超过integer,小数部分的位数不能超过fraction
    @Negative 限制必须为负整数
    @NegativeOrZero 限制必须为负整数或零
    @Positive 限制必须为正整数
    @PositiveOrZero 限制必须为正整数或零
    其他 @Pattern(value) 限制必须符合指定的正则
    @Email 限制必须为email
        /**
         * 新增图片
         * @param rquest
         * @param bindingResult
         * @return
         */
        @PostMapping("/add")
        public ResponseEntity<?> add(@RequestBody  @Valid AssetImageAndVideoResp rquest, BindingResult bindingResult){
    
            log.info("asset image request params >>>  {}", rquest);
            // 处理校验
            if (bindingResult.hasErrors()){
                throw new BaseException(bindingResult.getFieldError().getDefaultMessage());
            }
    
            AssetImageJpaEntity assetImageJpaEntity = assetImageService.add(rquest);
            if (assetImageJpaEntity.getId() != null) {
                return ResponseEntity.ok(GenericResponse.success());
            } else {
                return ResponseEntity.ok(GenericResponse.error());
            }
        }
    
    @Data
    public class AssetImageAndVideoResp {
    
        private int id;
    
        @NotBlank(message = "请输入素材url")
        private String url;  // 素材URL
    
        @NotBlank(message = "请输入素材名称")
        private String name; // 名称
    
        private Integer source; // 素材来源
    
        private String advertiserName; // 来源名称
        private String advertiserId; // 素材来源ID
    
        @Positive(message = "请输入素材宽")
        private Integer width;    // 宽
    
        @Positive(message = "请输入素材高")
        private Integer height;   // 高
    
        private String widthAndHeight; //宽高
    
        private Integer asceptWidth; // 宽比例
    
        private Integer asceptHeight; // 高比例
    
        @Positive(message = "请输入素材大小")
        private Long size;  // 大小
    
    
        private Integer assetImageAspectId; // 规则ID
    
        private Integer duration;   // 视频时长,单位:秒
    
        // 创建时间
        private LocalDateTime createdAt;
    
        // 修改时间
        private LocalDateTime updatedAt;
    
        // 创建人
        private String createdBy;
    
        // 最后一次提交人
        private String updatedBy;
    }
    
  • 相关阅读:
    js中变量声明提前
    冒泡与捕获
    win7安装不了nodejs及解决方法
    nodejs配置app的服务
    Ming Rpc
    test
    Java8 Lambda sample (iwantmoon.com出品)
    Spring Mvc 输出Json(iwantmoon.com出品)
    单点登录(iwantmoon.com出品)
    虚拟机WIN10发布.NetCore 3.1
  • 原文地址:https://www.cnblogs.com/hefeng2014/p/16664923.html
Copyright © 2020-2023  润新知