美文网首页 Java开发工具
利用 JSR303进行后台校验:

利用 JSR303进行后台校验:

作者: 刘小刀tina | 来源:发表于2020-02-07 12:37 被阅读0次

    后端JSR303校验:

    第一. 先导入包hibernate validator

       <!--后端JSR303校验依赖包-->
            <dependency>
                <groupId>org.hibernate</groupId>
                <artifactId>hibernate-validator</artifactId>
                <version>6.0.9.Final</version>
            </dependency>
    

    ps : 其实我发现Springboot starter启动类的jar包中已经集成了!!

    第二. 基本注解介绍:

    限制  说明
    @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之间
    @NotEmpty   验证注解的元素值不为null且不为空(字符串长度不为0、集合大小不为0)
    @NotBlank   验证注解的元素值不为空(不为null、去除首位空格后长度为0),不同于@NotEmpty,@NotBlank只应用于字符串且在比较时会去除字符串的空格
    @Email  验证注解的元素值是Email,也可以通过
    @NotEmpty:作用在String、collection、map、数组上,不能为null,size > 0
    

    第三:项目中的使用

    . 实体类上加注解
    package com.tina.springboot.springboot.entity;
    import lombok.Data;
    import javax.validation.constraints.Email;
    import javax.validation.constraints.NotNull;
    import javax.validation.constraints.Pattern;
    import java.io.Serializable;
    @Data
    public class Employee implements Serializable {
    
        //@NotNull
        private String empId;
    
        @NotNull
        @Pattern(regexp = "[\\u4E00-\\u9FA5]{2,5}(?:·[\\u4E00-\\u9FA5]{2,5})*",message = "姓名不合法")
        private String empName;
    
       // @NotNull
        private String gender;
    
        //@NotNull
        @Email(message = "不符合邮箱格式")
        private String email;
    
        //@NotNull
        private String createTime;
    
        //@NotNull
        private String depId;
    
        //@NotNull
        private String delFlag;
    }
    
    

    3。在controller类上加注解

    @RestController
    @Api(value = "Employee模块")
    @RequestMapping("/test")
    @CrossOrigin
    @Sf4j
    public class EmployeeController {
    
        @Autowired
        private EmployeeService employeeService;
    
     // 添加员工 //对名字和邮箱进行校验,不存在数据方可以储存,
    @PostMapping(value = "/addEmp")
    @ApiOperation(value = "添加员工")
    public EntityResp<Object> addEmp(@Valid @RequestBody Employee employee,
                                         BindingResult bindingResult){
    
     log.info(">>>>实体类信息为:>>>>{}", JSON.toJSONString(validEntity));
    
           //(1)谨慎点可以来一次判断
     if(bindingResult.hasErrors()){
                return new EntityResp<>("对名字和邮箱进行JSR303校验失败",Code.SERVER_OTHER_ERROR);
            }else {
                return employeeService.addEmp(employee);
            }
      //(2)如果配置有全局异常捕获 无须判断
     return employeeService.addEmp(employee);
        }
    
    }//类的大括号
    
    
    @RestController
    @Slf4j
    public class TestValidController {
    
        @PostMapping(value = "/valid")
        public ApiResult valid(@Valid @RequestBody ValidEntity validEntity) {
            log.info(">>>>实体类信息为:>>>>{}", JSON.toJSONString(validEntity));
            return ApiResult.ok(validEntity);
        }
    }
    
    

    相关文章

      网友评论

        本文标题:利用 JSR303进行后台校验:

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