我正在嘗試將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