java - 使用@JsonFormat 时如何配置自定义错误消息?
问题描述
我在这里遇到了一个问题,我不能接受错误的日期格式。
例如:
如果 api 请求收到日期“2019-14-10”我不能接受。现在,当我收到它时,JsonFormat 给了我 2020-02-10。
为了解决这个问题,我添加了 lenient=OptBoolean.FALSE,如下所示:
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd", timezone = "America/Vancouver", lenient = OptBoolean.FALSE)
private Date effectiveDate;
现在的问题是,当我调用传递错误日期(2019-14-10)的 api 时,我只会收到 400 Bad request 响应。
是否可以为此验证创建自定义响应?
例如,我可以返回这样的东西:
{
"code": {
"value": 4,
"name": "InvalidRequest"
},
"message": "{effectiveDate=Date is invalid. Please choose a valid date}"
}
或者至少是错误消息。
解决方案
这不会是杰克逊直接处理的事情。这是更高阶的验证 API 会处理的事情,比如bean validators。
推荐阅读
- xml - 此代码应显示错误,因为存在比 dtd 额外的标记。但它没有显示任何错误。有什么问题?
- android - 监听 Firestore Websocket
- c++ - 避免来自 Regex_search 的额外匹配
- asp.net-core-mvc - 如何在 asp.net mvc-core 中读取和显示相关数据?
- azure - Azure Functions 使用 ASP.NET 的哪些部分?
- typescript - typescript 泛型限制数量 | 细绳
- java - 追踪 Vget 下载进度
- mongodb - Spring Boot MongoDB 通过 Ssh 隧道连接
- javascript - 随时从服务器填充 angularjs ui-select 将其放下
- iphone - 如何在 iPad 上使用 Java Script 播放音频?