首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Springboot [2.1.6.RELEASE] -禁用自动更正输入日期

Springboot [2.1.6.RELEASE] -禁用自动更正输入日期
EN

Stack Overflow用户
提问于 2020-07-24 15:59:46
回答 1查看 92关注 0票数 0

我有个简单的问题。如果我发送了一个带有以下日期参数的正文(如下所示),springboot会自动将其转换为1991年5月1日,并且我想禁用它。我想抛出一个异常来告诉客户端,这不是一个有效的日期。这有可能吗?

我发送的正文:

代码语言:javascript
运行
复制
{
  "gender": "MALE",
  "firstname": "XXX",
  "lastname": "XXX",
  "birthday": "1991-04-31"
}

我的WebRequestController:

代码语言:javascript
运行
复制
public @ResponseBody void updateUser (@PathVariable Long userId, @Valid @RequestBody UserUpdateIDTO userDTO) throws UserNotFoundException, ValidationException {
        userService.updateUser(userId, userDTO); // userDTO got the 1st may 1991
}
EN

回答 1

Stack Overflow用户

发布于 2020-07-24 16:14:51

您好,您可以做验证,如;

代码语言:javascript
运行
复制
@JsonDeserialize(using = Deserializer.class)
@JsonSerialize(using = Serializer.class)
@JsonFormat(pattern = "yyyy-MM-dd")
private Date begin_date;

这似乎还不够,因为您不仅要检查格式,还要进行验证。所以你最好做一个反序列化程序。要做到这一点,你需要像这样改变核心。

代码语言:javascript
运行
复制
 public class Deserializer extends JsonDerializer<Date>{

}

https://www.baeldung.com/java-string-valid-date从这里你可以检查如何验证date,并在此基础上抛出错误。

顺便问一下,我们能看看你的-> UserUpdateIDTO吗?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63069330

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档