gst*_*low 6 java validation date spring-mvc hibernate-validator
我有以下bean:
class CampaignBeanDto {
@Future
Date startDate;
Date endDate;
...
}
Run Code Online (Sandbox Code Playgroud)
显然我endDate应该在startDate之后.我想验证它.
我知道我可以为此手动实现注释@FutureAfterDate,验证器并手动初始化阈值日期但我想使用@Validatedspring mvc注释.
我怎样才能实现它?
小智 6
您不应使用注释进行跨字段验证,而应编写验证函数。在问题的答案中进行了解释,使用 Hibernate Validator (JSR 303) 进行跨字段验证。
例如编写一个如下的验证器函数:
public class IncomingData {
@FutureOrPresent
private Instant startTime;
@Future
private Instant endTime;
public Boolean validate() {
return startTime.isBefore(endTime);
}
}
Run Code Online (Sandbox Code Playgroud)
然后在第一次接收数据时调用验证器函数:
if (Boolean.FALSE.equals(incomingData.validate())) {
response = ResponseEntity.status(422).body(UNPROCESSABLE);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5969 次 |
| 最近记录: |