springboot @Valid抛出的异常获取不重复的

springboot @Valid如果检验的是List会抛出很多异常,导致message一堆,怎么只保留不重复的message。
例如:这个案例的“密码为空”【如果有其他异常也保留】
要求:在Utils方法的基础上改进,最后效果就是只保留不重复的message且不显示方法名.属性,有两个不重复的就保留俩,只有一个不重复的就只留一个,不看原来有多少异常,而看不重复的有几个。

img


img


img

@Valid注解加到sendWorkMail()方法所属的类上试试

未在需要校验的参数前加上@Valid注解,例如:@Valid @RequestBody User user
望采纳!!点击该回答右侧的“采纳”按钮即可采纳!
你自己检测一下吧(提供思路)
1.没有在需要校验的参数对象中使用JSR 303规范的校验注解,例如@NotNull、@Size等

2.没有在合适的位置使用MethodValidationPostProcessor进行方法参数校验

3.没有在合适的位置使用Validator进行方法参数校验

4.在启动类上没有使用@EnableWebMvc注解,导致无法使用@Valid注解进行参数校验

  1. 不知道题主清不清楚一件事 如果按照题目要求 仅在Utils方法的基础上改进, 那么当list触发异常时,它是一定会进入utils方法的
  2. 基于第1点, 避免重复message的处理方式可以为 : 在utils类 定义一个全局map变量, 将message作为key 存入map中,在getExceptionMessage方法 第一行 先进行判断 map中是否包含 如果包含 则return "";
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632