0

我想在我的 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选中并且该email address字段留空,也可以接受表单提交。

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

非常感谢您的帮助。

4

1 回答 1

0

上面的代码对我来说看起来不错。creditProviderCommand.notifyMe == 'on'当复选框被选中时,您是否 100% 确定?

即使使用 notifyMe 复选框,也接受表单提交

即使存在验证错误,表单提交也将始终被接受。您有责任检查验证错误并决定验证失败时的处理方式,例如

def myAction = {MyCommand cmd ->

  if (cmd.validate()) {
    // code to be executed when validation succeeds
  } else {
    // code to be executed when validation fails
  }
}
于 2011-09-05T11:53:20.793 回答