【发布时间】:2021-03-15 16:55:36
【问题描述】:
我有获取请求
localhost:8080/company/{id}/resource?fromDate=2020-12-03T18:01:00Z&toDate=2020-12-03T18:12:00Z
在这个请求中fromDate和toDate是可选的,所以基本上我可以调用
localhost:8080/company/{id}/resource
它会为我返回响应。
现在我想以正确的方式验证 fromDate 和 toDate 是否都通过了,或者两者都没有通过。
@GetMapping(value = "/company/{id}/resource")
public String getParameterOverride(
@PathVariable String id,
@RequestParam(required = false) @DateTimeFormat(iso = ISO.DATE_TIME) ZonedDateTime fromDate,
@RequestParam(required = false) @DateTimeFormat(iso = ISO.DATE_TIME) ZonedDateTime toDate
) {
// check dates logic
return id;
}
问题是我不想写类似的东西
if(fromDate == null && toDate == null) {
...
}
我正在使用 Spring Boot。还有其他方法可以验证此字段吗?我的想法是创建新的 POJO,然后在那里验证它们,但我没有设法弄清楚如何去做。如何检查两个文件是否都存在于 POJO 中,反之亦然?还有From Date是之前到日期吗?
【问题讨论】:
-
如果你拒绝做空检查,你想如何验证字段?
-
@f1sh 我想验证设置到 POJO 中的字段,我不拒绝这样做
-
然后设置成pojo,有什么问题?然后你必须在 pojo 的方法中做空检查。您希望从中获得什么?
-
如果你不喜欢语法,你可以用
Objects.isNull(obj)代替@BohdanMyslyvchuk
标签: java spring-boot validation