Grails - Command对象,自定义条件验证器

时间:2011-09-05 11:19:53

标签: grails validation constraints customvalidator command-objects

我想在我的Command对象中构建一个自定义验证器,以确保在选择email address时表单的字段notifyMe checkbox不会为空。

以下是我最近的实施尝试:

email(blank: true, nullable: true, email: true,
                  validator: {email, creditProviderCommand ->
                              if (creditProviderCommand.notifyMe == 'on')
                                    return email.size() > 0})

我也尝试使用email != nullemail != '',但在两种情况下都不起作用,这意味着即使选中notifyMe checkbox和{{1}也接受表单提交}字段留空。

操作代码正确处理验证错误(甚至是唯一约束)。 我知道我做错了什么?

非常感谢你的帮助。

1 个答案:

答案 0 :(得分:0)

上面的代码对我来说很好看。在选中复选框时,您是否100%确定creditProviderCommand.notifyMe == 'on'

  

即使使用notifyMe复选框

,也会接受表单提交

即使存在验证错误,也始终接受表单提交。您有责任检查验证错误并确定验证失败时要执行的操作,例如

def myAction = {MyCommand cmd ->

  if (cmd.validate()) {
    // code to be executed when validation succeeds
  } else {
    // code to be executed when validation fails
  }
}