Grails 2.2.0

如何在Grails域对象约束中访问自定义配置变量。

我想要这样的东西:

    class User {

         def grailsApplication

         String name

         static constraints = {
             name size: grailsApplication.config.maxlength
         }

    }

但是它失败,并显示“没有此类属性:grailsApplication”。我试图通过遵循getting grails 2.0.0M1 config info in domain object, and static scope?中的建议来使其工作,但尚未设法使任何组合起作用。

如何在域对象约束中访问config?另外,如何在域约束的单元测试中处理这种情况?

最佳答案

您可以使用grails.util.Holders类来访问配置对象,如下所示:

Config.groovy中:

myMaxSize = 10

在您的网域类别中:
class User {
    String name

    static constraints = {
        name minSize: Holders.config.myMaxSize
    }
}

08-26 22:19
查看更多