我打算使用自定义验证程序检查域类中特定条件下的非空值。相同的检查应该在多个字段中运行。所以我考虑了因素。验证闭包并尝试将其作为参数传递给约束子句中的每个验证器密钥。
Pause
尽管如此,Grails抛出一个MissingPropertyException并显示消息'没有这样的属性:notNullIfCustom for class ...可能的解决方案:notNullIfCustom'。如果我只是将闭包体复制并粘贴到约束子句中的每个验证器条目,它将按预期运行。
PS:我不想使用共享验证器,因为我实际上并没有在域类之间共享验证器,而是在同一域内的字段之间共享。
答案 0 :(得分:4)
constraints
块是静态的,因此您的自定义验证器也必须是静态的。只需将其改为
static notNullIfCustom = { val, object ->
...
}