我正在尝试将Grails 2.3.7项目升级到Grails 3.2.3。在2.3.7中,我使用自定义的约束和使用/conf/Config.groovy注册它们:注册自定义约束
org.codehaus.groovy.grails.validation.ConstrainedProperty.registerNewConstraint('description', my.validation.DescriptionConstraint)
然后我就可以在域名使用是这样的:
static constraints = {
approvedDate(description: '>= applyDate')
}
然而,在Grails的3.2 3,当我把/conf/application.groovy上面的命令(从包名称中删除org.codehaus.groovy)我有以下错误:
Error occurred running Grails CLI: No signature of method: groovy.util.ConfigObject.registerNewConstraint() is applicable for argument types: (groovy.util.ConfigObject, groovy.util.ConfigObject) values: [[:], [DESCRIPTION_CONSTRAINT:[:]]]
我已经通知,验证类有所改变中Grails 3.然而,usin来自Grails-validation的g约束类仍然有相同的错误。
我发现的所有验证插件在Grails 3之前就被抛弃了。而且在Grails 3.2中找不到任何文档来注册新的约束。
试试这个: 'org.codehaus.groovy.grails.validation.ConstrainedProperty。 registerNewConstraint('description',my.validation.DescriptionConstraint.class)' [DOC](http://docs.grails.org/3.1.x/api/grails/validation/ConstrainedProperty.html#registerNewConstraint) – zfChaos
@zfChaos谢谢。但是,仍然有相同的错误。此外,'import grails.validation.ConstrainedProperty'得到'无法解析类grails.validation.ConstrainedProperty'它看起来像这个文件还没有在Grails环境中。我试图在'/ grails-app/init/Application.groovy'中注册它。那里没有错误。但是,我正在移植项目的其他部分,因此我无法测试它是否可用。 – Meam