SpringBoot参数检验

375 阅读1分钟

校验简单数据类型

SpringBoot自带了validation工具可以从后端对前端传来的参数进行校验

  1. 引入 validation 起步依赖
  2. 在Controller类上方添加注解 @Validated (//该控制器开启参数校验)
    • @NotBlank // 在参数前加校验注解,该注解的意思是字符串参数不能为null
    • 在校验参数的注解中添加message属性,可以替换异常信息。@NotBlank(message ="用户名不能为空")

异常处理

当抛出 ConstraintViolationException 异常后,我们可以使用SpringMVC的异常处理器,也可以使用SpringBoot自带的异常处理机制。

当程序出现了异常,SpringBoot会使用自带的 BasicErrorController 对象处理异常。该处理器会默认跳转到/resources/templates/ error.html 页面。

校验相关注解

image.png

对象类型

在实体类当中的每个属性中都添加如下注解

@NotNull(message = "id不能为空")
private Integer id;

编写控制器 校验的对象参数前添加 @Validated ,并将异常信息封装到 BindingResult对象中

// 校验的对象参数前添加@Validated,并将异常信息封装到BindingResult对象中
public String t3(@Validated Student student,BindingResult result) {
       // 判断是否有参数异常
       if (result.hasErrors()) {
           // 所有参数异常
           List<ObjectError> list =result.getAllErrors();
           // 遍历参数异常,输出异常信息
           for (ObjectError err : list) {
               FieldError fieldError =(FieldError) err;   
               System.out.println(fieldError.getDefaultMessage());
          }
           return "参数异常";
      }
       System.out.println(student);
       return "请求成功!";
  }