我有个简单的问题。如果我发送了一个带有以下日期参数的正文(如下所示),springboot会自动将其转换为1991年5月1日,并且我想禁用它。我想抛出一个异常来告诉客户端,这不是一个有效的日期。这有可能吗?
我发送的正文:
{
"gender": "MALE",
"firstname": "XXX",
"lastname": "XXX",
"birthday": "1991-04-31"
}我的WebRequestController:
public @ResponseBody void updateUser (@PathVariable Long userId, @Valid @RequestBody UserUpdateIDTO userDTO) throws UserNotFoundException, ValidationException {
userService.updateUser(userId, userDTO); // userDTO got the 1st may 1991
}发布于 2020-07-24 16:14:51
您好,您可以做验证,如;
@JsonDeserialize(using = Deserializer.class)
@JsonSerialize(using = Serializer.class)
@JsonFormat(pattern = "yyyy-MM-dd")
private Date begin_date;这似乎还不够,因为您不仅要检查格式,还要进行验证。所以你最好做一个反序列化程序。要做到这一点,你需要像这样改变核心。
public class Deserializer extends JsonDerializer<Date>{
}https://www.baeldung.com/java-string-valid-date从这里你可以检查如何验证date,并在此基础上抛出错误。
顺便问一下,我们能看看你的-> UserUpdateIDTO吗?
https://stackoverflow.com/questions/63069330
复制相似问题