zoukankan      html  css  js  c++  java
  • SpringBoot 注解@Validated 用来控制参数大小和是否为空等

    在写RestFul服务的的时候的时候遇到需要指定字段长度大小以及是否为空的时候;网上找到这个@Validated 注解可以解决这个问题。

    记录一个Demo 以备自己日后查看。

    添加pom。xml文件依赖

    <dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-validator</artifactId>
    <version>6.0.7.Final</version>
    </dependency>

    1、定义一个类

    public class User {


    @NotEmpty(message = "用户名不能空")
    private String userName;

    public String getUserName() {
    return userName;
    }

    public void setUserName(String userName) {
    this.userName = userName;
    }

    public Integer getAge() {
    return age;
    }


    public void setAge(Integer age) {
    this.age = age;
    }



    @Max(value = 50, message = "年龄最大不能超过150")
    private Integer age;
    }

    2、写一个Controller 请求 (在请求中加上

    @Validated

    @PostMapping("/test")

    public User getUser( @Validated @RequestBody User user)
    {

    return user;
    }


    3、定义异常捕获
    @RestControllerAdvice
    public class GlobalExceptionHandler {

    @ExceptionHandler(value = MethodArgumentNotValidException.class)
    public String methodArgumentNotValidExceptionHandler(MethodArgumentNotValidException ex) {


    List<ObjectError> allErrors = ex.getBindingResult().getAllErrors();
    // 将所有错误信息拼接成一个字符串
    StringBuilder msg = new StringBuilder();
    for (ObjectError error : allErrors) {
    msg.append(error.getDefaultMessage() + ";");
    }
    return msg.toString();
    }


    }

    4、用postman请求

    其他用法:

    @AssertFalse 校验false
    @AssertTrue 校验true
    @DecimalMax(value=,inclusive=) 小于等于value,
    inclusive=true,是小于等于
    @DecimalMin(value=,inclusive=) 与上类似
    @Max(value=) 小于等于value
    @Min(value=) 大于等于value
    @NotNull 检查Null
    @Past 检查日期
    @Pattern(regex=,flag=) 正则
    @Size(min=, max=) 字符串,集合,map限制大小
    @Validate 对po实体类进行校验



  • 相关阅读:
    [HAOI2018]苹果树
    [TJOI2013]拯救小矮人
    [SDOI2016]硬币游戏
    一辈子都学不会的有上下界的网络流
    [AHOI2014/JSOI2014]支线剧情
    [JSOI2009]球队收益
    hdu-1856 More is better---带权并查集
    hdu-1325 Is It A Tree?---并查集
    hdu-1272 小希的迷宫---并查集或者DFS
    hdu1213-How Many Tables---基础并查集
  • 原文地址:https://www.cnblogs.com/Ken2018/p/13255325.html
Copyright © 2011-2022 走看看