(快速参考)

错误

目的

Spring Errors 接口的一个实例,其中包含数据绑定和/或验证错误。

示例

def user = new User(params)

if (user.validate()) {
    // do something with user
}
else {
    user.errors.allErrors.each {
        println it
    }
}

说明

errors 属性在数据绑定过程中由 Grails 用于存储类型转换错误,在调用 validatesave 方法的过程中用于存储验证错误。

你还可以使用 rejectrejectValue 方法添加你自己的错误。

if (params.password != params.confirm_password) {

    user.errors.reject(
        'user.password.doesnotmatch',
        ['password', 'class User'] as Object[],
        '[Property [{0}] of class [{1}] does not match confirmation]')

    // The following helps with field highlighting in your view
    user.errors.rejectValue(
        'password',
        'user.password.doesnotmatch')

    render(view: 'signup', model: [user: user])
}

在上面 reject 的示例中,'user.password.doesnotmatch' 是对应于 grails-app/i18n/message.properties 中的值的错误代码,\['password', 'class User'\] as Object\[\] 是从 ListObject 数组的 Groovy 强制转换,以匹配预期的签名,'\[Property \[{0}\] of class \[{1}\] does not match confirmation\]' 是默认映射字符串。

rejectValue 示例中,'password' 是视图中使用 <g:hasErrors> 标记突出显示的字段,'user.password.doesnotmatch' 是 i18n 错误代码。