• springBoot 使用 @NotEmpty,@NotBlank,@NotNull 及@Valid注解校验请求参数


    本文为博主原创,转载请注明出处:

      @NotEmpty,@NotBlank,@NotNull 这些注解所在的jar包路径在 javax.validation.constraints 的包下面,这个包下面也封装了其他的注解

     

     这里列举一下常用的注解,并做简单介绍,其余还要在使用的时候慢慢挖掘

    //被注释的元素必须为null
    @Null  
    //被注释的元素不能为null
    @NotNull  
    //被注释的元素必须为true
    @AssertTrue  
    //被注释的元素必须为false
    @AssertFalse  
    //被注释的元素必须是一个数字,其值必须大于等于指定的最小值
    @Min(value)  
    //被注释的元素必须是一个数字,其值必须小于等于指定的最大值
    @Max(value)  
    //被注释的元素必须是一个数字,其值必须大于等于指定的最小值
    @DecimalMin(value)  
    //被注释的元素必须是一个数字,其值必须小于等于指定的最大值
    @DecimalMax(value)  
    //被注释的元素的大小必须在指定的范围内。
    @Size(max,min) 
    //被注释的元素必须是一个数字,其值必须在可接受的范围内
    @Digits(integer,fraction) 
    //被注释的元素必须是一个过去的日期 
    @Past  
    //被注释的元素必须是一个将来的日期
    @Future  
    //被注释的元素必须符合指定的正则表达式。
    @Pattern(value) 
    //被注释的元素必须是电子邮件地址
    @Email 
    //被注释的字符串的大小必须在指定的范围内
    @Length 
    //被注释的字符串必须非空
    @NotEmpty  
    //被注释的元素必须在合适的范围内
    @Range  

      这些注解用于加在java的实体类属性字段上,在进行请求或请求的时候会根据字段的注解进行对应的校验,简化校验相关的代码。

    当校验不同过时,会返回对应的message描述

      在前端请求解析到 controller 的时候,可使用 @valid 注解,开启校验,以下为使用的示例:

       @PostMapping("/get/user/course")
        public UserCourseInfo getUserCourseInfo(@Valid @RequestBody CreateUserRequest request) {
    
            return userService.getUserCourseInfo(request);
        }
    CreateUserRequest 实体类并添加校验注解
    import lombok.AllArgsConstructor;
    import lombok.Data;
    import lombok.NoArgsConstructor;
    import org.apache.commons.lang.StringUtils;
    import org.hibernate.validator.constraints.Length;
    
    import javax.validation.constraints.Email;
    import javax.validation.constraints.NotBlank;
    import javax.validation.constraints.NotNull;
    
    /**
     * <h1>创建用户请求对象定义</h1>
     * Created by Qinyi.
     */
    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    public class CreateUserRequest {
    
        /** 用户名 */
        @NotNull(message = "不可为空")
        @Length(min=20,max=30,message = "长度在20到30")
        private String username;
    
        /** 邮箱 */
        @Email
        @NotBlank
        private String email;
    
    }
  • 相关阅读:
    WordCount项目基本功能
    让自己的头脑极度开放
    Docker安装Mysql5.7
    MySQL中的函数索引(Generated Column)及一次SQL优化
    关于老系统的重构和优化选择
    JIRA笔记(一):安装部署JIRA
    Jenkins 配置GitLab插件和Git插件
    Loading descriptor for XXX.'has encountered a problem' A internal error occured during:"Loading ....."
    Newton插值的C++实现
    Lagrange插值C++程序
  • 原文地址:https://www.cnblogs.com/zjdxr-up/p/13308717.html
Copyright © 2020-2023  润新知