Valid注解配合属性校验注解完成参数校验并且优化参数校验异常处理
1 @Valid注解配合属性校验注解完成参数校验
向数据库商品分类表中新增商品分类字段,并校验传入的参数
不使用注解的传统方法:


使用注解的方法:
@Valid加在controller层的AddCategoryReq类参数前

@Size、@NotNull、@Max加在AddCategoryReq类属性上面

这样,前台通过json传递的数据,通过@RequestBody封装为对象后,@Valid就会校验对象中各个字段是否符合限制。
但现在的问题是,对于不符合限制的异常,都包含在Exception类中,不能具体显示message中的信息





2 优化参数校验异常处理
在全局异常处理类中处理这个参数校验异常:MethodArgumentNotValidException


objectError.getDefaultMessage
就可以获得错误信息(属性上面的message定义的)
并保存到ArrayList中,最后list.toString()返回String类型信息,保存到msg属性中,统一为ApiRestResponse返回对象。




注意点
在JSON传递到web接口是,如果想传递null的值不能带 “”,直接置空就行。。

文章讲述了如何利用Java中的@Valid注解配合属性校验注解进行参数校验,特别是在控制器层对AddCategoryReq类参数的验证。同时,文章提出了一个问题,即当校验失败时,异常信息被封装在Exception类中,无法直接获取详细message。为了解决这个问题,文章建议在全局异常处理类中捕获MethodArgumentNotValidException,通过getDefaultMessage获取错误信息,并以列表形式返回。此外,提醒在JSON传递中,若要传递null值,应直接置空,而非用表示。
1337

被折叠的 条评论
为什么被折叠?



