【发布时间】:2015-08-25 10:25:42
【问题描述】:
当涉及到数据绑定和正确的日期格式时,我在 grails 2.3 应用程序中遇到了问题。
我使用了一个日期选择器 (jQuery ui),它提供了一个 <input type="hidden" />,它以 ISO_8601 格式保存选定的日期。它将向控制器发布一个像这样的值:2015-08-14。表单本身和发布结果是正确的。
我使用这个简化模型:
class Thing {
DateTime lastUpdated
static constraints = {
lastUpdated nullable: true
}
}
当我尝试创建实体时,我会遇到以下错误消息:
Invalid format: "2015-08-14" is malformed at "15-08-14"
第一项研究使我发现
Config.groovy 发生了这种变化:
jodatime.format.html5 = true
(下面列表中的链接 3)
应用它会导致改变。现在错误信息是:
Invalid format: "2015-08-14" is too short(翻转表)
另一个尝试是将 databinding.dateFormats 更改为此(也在 Config.groovy 中):
grails.databinding.dateFormats = [ "yyyy-MM-dd HH:mm:ss.S","yyyy-MM-dd'T'hh:mm:ss'Z'", "yyyy-MM-dd"]
什么都没有。
据我了解,给定的日期格式应自动编组到 dateTime 对象中。我错过了什么配置?
以下是相关问题,遗憾的是对我没有帮助:
【问题讨论】:
-
@Ilya 谢谢你的回复。我对 grails 很陌生,并不完全理解这有什么帮助。我应该把这个:
jodatime { format.org.joda.time.DateTime = "yyyy-MM-dd" }? - 这似乎是错误的。输入和显示风格之间有联系吗? 更新:这确实有效,但是将 dateTime 格式切换为仅日期格式是否是个好主意? -
@Ilya 您可以将其发布为答案吗?这似乎可以解决问题。我仍然需要了解这种变化的影响。
标签: grails grails-orm jodatime grails-2.0