Grails - 域对象无法正确验证

时间:2014-09-01 08:22:02

标签: validation grails domain-object

我正在尝试使用jQuery Datepicker设置一个人的出生日期。但是,我得到的只是Property dateOfBirth must be a valid Date

所以,最初,我的控制器看起来像这样:

def update(Person personInstance) {
    if (personInstance == null) {
        // do Something
        return
    }

    if (personInstance.hasErrors()) {
        respond personInstance.errors, view: 'edit'
        return
    }

    // do the rest
}

我想通过jQuery我应该使用SimpleDateFormat对象来生成正确的Date对象。尽管如此,即使我直接将新的Date对象分配给dateOfBirth并随后验证personInstance域对象 - 如下面的代码段 - 我仍然会收到Property dateOfBirth must be a valid Date错误

def update(Person personInstance) {
    if (personInstance == null) {
        // do Something
        return
    }

    // added code
    personInstance.dateOfBirth = new Date()
    personInstance.validate()
    // added code

    if (personInstance.hasErrors()) {
        respond personInstance.errors, view: 'edit'
        return
    }

    // do the rest
}

感谢您的帮助:)

1 个答案:

答案 0 :(得分:1)

您仍然看到错误的原因是因为在调用方法时绑定命令/域对象后会自动调用验证。

在手动调用personInstance.clearErrors()之前使用personInstance.validate()清除任何现有的绑定/验证错误。您可以在documentation

中查看有关此内容的更多信息