【发布时间】:2019-06-27 00:36:07
【问题描述】:
我有一个日期输入字段。用户输入一个日期然后提交,该日期保存在数据库中。对于如何做事,我有两种选择,我知道如何实现这两种选择,但我不太确定最佳做法是什么,因为我是菜鸟。
选项 1:从日期输入读取的值是一个字符串,并将其发送到我的 Spring 后端,然后创建一个日期对象。
选项 2:从日期输入中读取值并在 JavaScript 中创建一个日期对象,并将一个日期对象发送到我的 spring 控制器。
我倾向于选项 1,因为我认为我的控制器会有更好的错误处理能力?
【问题讨论】:
-
仅供参考,通过 HTTP 请求正文(或查询字符串)发送的任何值都将是 字符串。你不能在不序列化的情况下将 JS
Date实例发布到后端 -
IMO,日期的最佳序列化格式是ISO 8601。 JS 日期可以使用
Date.prototype.toISOString()生成其中之一 -
获取客户输入并将其转换为 JS Date 对象,可用作输入的前端验证方法。然而,后端将收到对象的字符串表示形式。
-
@Phil 我不知道,谢谢!我也尝试了选项 2,它没有我序列化它就可以正常工作。也许它会在您指定后端期望的类型时自动序列化它?
-
@DaveDaBest 如果你发送 JSON,
Date.prototype.toJSON()内部调用toISOString()
标签: javascript java