【发布时间】:2021-12-13 20:24:21
【问题描述】:
我在这个问题上纠结了一段时间。我正在使用 LocalDate 通过 REST 端点接受用户的日期输入。我想验证此日期以检查它是null、empty 字符串还是invalid 日期,例如Feb 30。我已经设法让它适用于有效的日期值,但如果输入无效,它会抛出 400 Bad Request 作为响应,它来自 Java 的内部类,所以我无法控制它。如果你能告诉我我是否遗漏了什么或做错了什么,我将非常感激。
这在我的控制器中被称为方法 - 用 @Valid 注释:
@RequestMapping(method = RequestMethod.PUT, value="/add")
public ResponseEntity<PSResponse> add(@Valid @RequestBody PSRequest request) throws Exception {
setServiceID(SERVICE_HANDLER_ID);
request.setRequestType("add");
PSResponse response = (PSResponse) invokeInternal(request);
}
这是我的请求对象的类
public class PSRequest {
@NotNull(message = "fromDate cannot be null")
protected LocalDate fromDate;
@NotNull(message = "toDate cannot be null")
protected LocalDate toDate;}
有效的 JSON 输入
"fromDate":2020-10-16"
"toDate":"2021-10-16"
无效的 JSON 输入日期格式
"fromDate":null,
"toDate":"2021-02-30"
谢谢!
【问题讨论】:
-
日期格式是 ISO 9601 吗?您是否需要验证从和到日期之间的某些顺序关系?顺便说一句,您的有效 JSON 示例中似乎缺少引号。
标签: java date validation localdate