我面临与上述here相同的问题,但当我厌倦了解决方案时,我仍然遇到同样的错误:
属性startDate必须是有效的Date属性endDate必须是a 有效日期
这是我的域名:
class EmpRef {
String workName
String title
Date startDate
Date endDate
String reasonForLeaving
String directMgrName
String directMgrTitle
String directMgrTelephone
}
这是我的保存操作:
def save(EmpRef empRefInstance) {
empRefInstance.startDate=Date.parse('dd-MM-yyyy',params.startDate)
empRefInstance.endDate=Date.parse('dd-MM-yyyy',params.endDate)
if (empRefInstance == null) {
notFound()
return
}
if (empRefInstance.hasErrors()) {
respond empRefInstance.errors, view:'create'
return
}
empRefInstance.save flush:true
}
GSP中的jQuery代码:
$('.datePicker').datepicker({
changeYear: true,
changeMonth: true,
autoSize: true,
dateFormat: "dd-mm-yy",
maxDate: "0y",
showAnim: "show",
yearRange:'c-70:c+0'
});
答案 0 :(得分:0)
如果EmpRef
是方法的参数,则会根据请求自动绑定。这会导致startDate
和endDate
都出错。在这些列上设置值后,您需要执行empRefInstance.validate()
而不是empRefInstance.hasErrors()
才能在域中获得新的验证结果。
另外,因为你在之后检查empRefInstance
是否,你设置了开始和结束日期,如果这个对象是null,你将在前面的行上得到NullPointerException,所以检查null应该在之前的代码