spring - 从默认错误列表中删除对象 Spring boot 验证
问题描述
我正在开发一个 Spring Boot 项目及其一个 RestController 和 web 服务
@ResponseBody CustomResponse method(final @PathVariable("tag") String tag, @Valid @RequestBody Payload payload, HttpServletResponse httpServletResponse) { }
如果 signatureHeight 为 Null 并且在 Payload 类中 signatureHeight 由@NotNull
{
"timestamp": "2018-08-01T13:30:41.859+0000",
"status": 400,
"error": "Bad Request",
"errors": [
{
"codes": [
"Positive.Payload.signatureHeight",
"Positive.signatureHeight",
"Positive.int",
"Positive"
],
"arguments": [
{
"codes": [
"Payload.signatureHeight",
"signatureHeight"
],
"arguments": null,
"defaultMessage": "signatureHeight",
"code": "signatureHeight"
}
],
"defaultMessage": "must be greater than 0",
"objectName": "Payload",
"field": "signatureHeight",
"rejectedValue": 0,
"bindingFailure": false,
"code": "Positive"
}
],
"message": "Validation failed for object='Payload'. Error count: 10",
"path": "/e-sign/sign-pdf/XML"
}
我想从错误 JsonArray 中出现的每个对象中删除errors.codes
and 。errors.arguments
这是否可以在不实现自己的自定义错误对象的情况下轻松完成。
解决方案
基本上,你可以。但是你需要实现异常处理。
在您的情况下,最常见的解决方案是 - 在控制器中声明下一个代码:
@ExceptionHandler({ConstraintViolationException.class, MethodArgumentNotValidException.class})
@ResponseBody
public ReturnType handleValidationException() {
return ReturnType.somePreparedMessage();
}
推荐阅读
- c# - 如何将滚动条添加到富文本框wpf
- oracle - 设置服务器输出时出错,PL/SQL 脚本无法在 FME 中执行?
- javafx - JavaFX - 想要在卡片布局设计中显示可以在运行时动态添加的数据库数据
- kotlin - TornadoFX 散点图更新
- entity-framework - EF Core 将鉴别器列添加到拥有的实体
- sql - 使用组值满足标准作为新组标识符
- powershell - PowerShell中的“*”之类的地方
- python - 根据百分位数过滤大型数据框的最有效方法
- php - 打开电子邮件跟踪而不更新它两次
- javascript - 创建子对象类时,原型属性中包含方法的原因是什么?