背景: 项目开始初期前端漏传参数,参数不合法等问题是我为之苦恼的重要问题,直到后来
项目中出现并用到SpringBoot提供的@Validated注解之后,终得以解脱.
问题描述: 前后端交互过程中,如果前端在请求后台接口的过程中,参数并未获取到,或者输
入的不是后端想要的合法值时,此时除了前端或后端手动逻辑判断外,并没有想到更加合适于
SpringBoot提供的注解@Validated.
说明: 以往自己处理这种问题时,会在前端写一个参数校验函数,在每次请求后端接口之前,
首先调用该函数,该函数只做一件事:把需要传入后端接口的参数传入其中,校验传入的参数
是否有值,或其他需要的校验,以此来解决此类问题.
解决办法: SpringBoot提供的@Validated注解.
SpringBoot提供的@Validated注解使用纪要:
// Controller
@PostMapping
public JsonResult add(@Validated @RequestBody Entity entity) {
// Codding....
return JsonResult.ok();
}
// Entity
@NotNull
private String key;
@NotBlank
private String value;
// .....
常用校验:
@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实体类进行校验