如何从Grails中的控制器声明inList约束?

时间:2013-01-11 06:11:32

标签: grails controller constraints

有人能告诉我如何在Grails控制器中声明inList约束吗?

假设我有这门课程:

class A {
    List hello
}

如何从控制器中为inList hello添加List约束?

2 个答案:

答案 0 :(得分:2)

定义一个约束,其中List属性具有针对列表列表验证的值?听起来怪怪的。但你可以做到。有了这堂课:

class A {
    List hello
    static constraint = {
        hello inList:[['abc','def','ghi'],[1,2,3],['a','b']]
    }
}

您可以在控制器中执行此操作:

def instance1 = new A(hello:['abc','def','ghi']).save()    //valid
def instance2 = new A(hello:[1,2,3]).save()                //valid
def instance3 = new A(hello:['a','b']).save()              //valid
def instance4 = new A(hello:['a','b','c']).save()    //invalid
def instance5 = new A(hello:[1,2]).save()            //invalid

如果A是其实例在传统数据库中保留的域类,则hello属性将被删除,因此您需要使用

来定义它。
static hasMany = [hello: SomeClass]

代替。

答案 1 :(得分:0)

您可以在字段中编写自定义验证程序,以检查数据是否在List中。您必须手动执行列表检查。 您可以找到here官方文档。有一些stackoverflow条目可以帮助您喜欢

Grails: Custom validator based on a previous value of the field