我的域名中包含以下字段
@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日期选择器时,这些验证一次正在工作但是一旦我切换到具有mm/dd/yyyy hh:mm a
格式的jquery datetimepicker,它就非常有效。我做的唯一其他改变是在gsp中包含一个格式,如下面的那个
value="${formatDate(format:"MM/dd/yyyy hh:mm a", date:contractInstance?.letDate)}"
非常感谢任何帮助或想法。
答案 0 :(得分:0)
您需要在validator
closeDate validator: { value, contract ->
if ( value < contract.advertiseDate ) return ['invalid']
}
letDate validator: { value, contract ->
if ( value < contract.closeDate ) return ['invalid']
}
和
//messages.properties
project.contract.closeDate.invalid = Close Date cannot be before Advertise Date
project.contract.letDate.invalid = Let Date cannot be before Close Date
返回密钥将用于查找该特定字段的消息。
请注意上述消息键的更改,如果出现无效情况,则会对返回键进行更改。我假设project
是消息密钥中的包名称,使用@BindingFormat
正确绑定日期。