日记51
之前接口参数校验都是用 if-else 判断,代码冗余且容易遗漏,今天学习用JSR303注解做参数校验。
在User实体类的字段上添加校验注解: username 加 @NotBlank(message = "用户名不能为空") 和 @Length(min = 2, max = 10, message = "用户名长度为2-10位") , age 加 @Min(value = 1, message = "年龄不能小于1") 和 @Max(value = 120, message = "年龄不能大于120") 。
在Controller的接口参数前加上 @Valid 注解开启校验,同时添加 BindingResult 参数接收校验结果。如果校验失败,就遍历错误信息返回给前端。
为了让代码更简洁,还自定义了全局异常处理器,捕获 MethodArgumentNotValidException 异常,统一封装错误提示返回,省去了每个接口都写 BindingResult 判断的麻烦。测试时传入不符合规则的参数,接口能精准返回错误信息,代码整洁度大大提升。
浙公网安备 33010602011771号