【发布时间】:2015-01-20 22:20:57
【问题描述】:
我的域中有以下字段
@BindingFormat('mm/dd/yyyy hh:mm a')
Date advertiseDate
@BindingFormat('mm/dd/yyyy hh:mm a')
Date closeDate
@BindingFormat('mm/dd/yyyy hh:mm a')
Date letDate
closeDate validator: { value, contract -> value >= contract.advertiseDate }
letDate validator: { value, contract -> value >= contract.closeDate }
messages.properties 文件中有验证错误
project.Contract.closeDate.validator.error = Close Date cannot be before Advertise Date
project.Contract.letDate.validator.error = Let Date cannot be before Close Date
由于某种原因,我的验证器似乎无法正常工作。我没有收到任何错误 我只是没有收到我的验证错误。
这些验证在我使用只有mm/dd/yyyy 格式的jquery datepicker 时有效,但是一旦我切换到mm/dd/yyyy hh:mm a 格式的jquery datetimepicker 时,它就可以正常工作了。我所做的唯一其他更改是在 gsp 上包含一种格式,如下所示
value="${formatDate(format:"MM/dd/yyyy hh:mm a", date:contractInstance?.letDate)}"
任何帮助或想法将不胜感激。
【问题讨论】:
-
首先要确认他们是否被调用。这样您就可以知道是验证器中的逻辑有问题,还是根本停止调用验证器表单的问题。我建议在验证器中添加一个 println 以在日志中查看它是否被调用。比如:
println('In closeDate validator'); -
您应该使用大写的 M 表示月份:
@BindingFormat('MM/dd/yyyy hh:mm a')
标签: grails grails-domain-class