如何在同一域的多个字段中重用自定义验证逻辑

时间:2015-04-26 07:26:01

标签: grails

我打算使用自定义验证程序检查域类中特定条件下的非空值。相同的检查应该在多个字段中运行。所以我考虑了因素。验证闭包并尝试将其作为参数传递给约束子句中的每个验证器密钥。

Pause

尽管如此,Grails抛出一个MissingPropertyException并显示消息'没有这样的属性:notNullIfCustom for class ...可能的解决方案:notNullIfCustom'。如果我只是将闭包体复制并粘贴到约束子句中的每个验证器条目,它将按预期运行。

PS:我不想使用共享验证器,因为我实际上并没有在域类之间共享验证器,而是在同一域内的字段之间共享。

1 个答案:

答案 0 :(得分:4)

constraints块是静态的,因此您的自定义验证器也必须是静态的。只需将其改为

即可
static notNullIfCustom = { val, object ->
   ...
}