grails 向 hasErrors 添加验证错误

Cod*_*kie 5 grails groovy

我想知道如何向 hasErrors 方法添加自定义错误,以便 gsp 发现错误。到目前为止我的代码。

def recoverySetup = new RecoverySetup(params)

def onesolOrgkey = OnesolOrgkeyInfo.get(new OnesolOrgkeyInfo(params));

if(onesolOrgkey != null) {
    recoverySetup.setOneSolOrgkey(onesolOrgkey)
} else {
    recoverySetup.errors.reject('orgkey', 'You must provide a valid Org Key')
}

recoverySetup.validate()

if(recoverySetup.hasErrors()) {
    render view: 'create', model: [recoverySetupInstance: recoverySetup]
    return
}
Run Code Online (Sandbox Code Playgroud)

Dei*_*ote 6

正如 Danilo 所说,您可能希望向域类添加约束来为您执行此操作。

http://grails.github.io/grails-doc/2.2.x/guide/single.html#constraintshttp://grails.github.io/grails-doc/2.2.x/ref 中了解有关约束的更多信息/Constraints/Usage.html

如果出于某种原因您确实想添加约束无法覆盖的自定义错误(我现在无法想象这种情况,但这并不意味着它不存在 :-),您仍然可以这样做以与您发布的内容非常相似的方式:

instance.errors.rejectValue(fieldName, errorCode, message, defaultMessage)
instance.errors.reject(errorCode, message, defaultMessage)
Run Code Online (Sandbox Code Playgroud)

第一个拒绝具体的字段,第二个拒绝一般的 bean。但请记住,当您validate再次调用时,此错误将被重置

此外,您可以使用以下命令在 grails 中自动显示 bean 的错误:

<g:hasErrors bean="${instance}">
   <g:renderErrors bean="${instance}" />
</g:hasErrors>
Run Code Online (Sandbox Code Playgroud)

在此处查看所有选项:https : //grails.github.io/grails-doc/2.2.x/ref/Tags/hasErrors.html