Grails 3在运行时访问Grails域约束

时间:2015-09-17 09:29:42

标签: grails gorm grails-3.0

我曾经在我的gsp中访问grails 2约束:

${MyDomainClass.constraints.myProperty.inList.collect{it.name()}} 

它不再适用于Grails 3

2 个答案:

答案 0 :(得分:1)

在Grails 3.0域中,命令对象使用特征grails.validation.Validateable (可以找到源here。该特征使您可以通过提供以下方法来访问约束。

static Map<String, ConstrainedProperty> getConstraintsMap();

要访问约束,请在域或命令对象上调用该方法。以下示例访问名为nullable的域对象属性上的day约束。

domainObject.getConstraintsMap()['day']['nullable']

答案 1 :(得分:0)

这种方式,在Grails 2中有效,仍然有效......

grailsApplication.getArtefact('Domain',
    'MyDomainClass').getConstrainedProperties().myProperty.inList.collect{it.name()}

see GrailsDomainClass API