这是我第一次在stackoverflow中提出问题。我想问问是否有一种方法可以通过@ExceptionHandler将多个错误类型同时抛回给用户一个对象?
例如,当用户请求服务时需要满足以下要求
(1) accountNo : required
(2) userDecision : @Pattern(regex="^[1|2]$")
但是,用户已省略accountNo(MissingServletRequestParameterException),并将userDecision输入为3(ContraintViolationException)。然后我可能会抛回像这样的Json对象
[
{
"error1":"your accnoutNo is empty",
"error2":"your decision is wrong"
}
]
同时显示给用户?
非常感谢,抱歉我的英语不好。
答案 0 :(得分:0)
您可以实现自定义验证器(https://docs.spring.io/spring/docs/4.1.x/spring-framework-reference/html/validation.html),并在validate方法中拒绝这些值。
此后,您可以在处理ValidationExceptions的此Validator的基础上,使用@ControllerAdvice注释实现ExceptionHandler(扩展ResponseEntityExceptionHandler)。