什么';当修改grails框架提供的约束类时,这是最好的方法

什么';当修改grails框架提供的约束类时,这是最好的方法,grails,groovy,constraints,overriding,gorm,Grails,Groovy,Constraints,Overriding,Gorm,grails-2.4.5中的类org.codehaus.groovy.grails.validation.CreditCardConstraint使用了org.apache.commons.validator包中弃用的CreditCardValidator 我希望将其修改为使用org.apache.commons.validator.routines包中未弃用版本的CreditCardValidator 我现在无法升级我的grails版本 实现这一点的最佳方法是什么?我想下面的代码就是您想要的?

grails-2.4.5
中的类
org.codehaus.groovy.grails.validation.CreditCardConstraint
使用了
org.apache.commons.validator
包中弃用的
CreditCardValidator

我希望将其修改为使用
org.apache.commons.validator.routines
包中未弃用版本的
CreditCardValidator

我现在无法升级我的grails版本


实现这一点的最佳方法是什么?

我想下面的代码就是您想要的?记住定义customType

import org.apache.commons.validator.routines.CreditCardValidator

class MyDomainOrCommand {

    String creditCard
    ...

    static constraints = {

            creditCard nullable: false, validate: { value, object ->
                CreditCardValidator v = new CreditCardValidator(CreditCardValidator.NONE);
                v.addAllowedCardType(customType);

                if(!v.isValid(value)) {
                    return 'creditCard.invalid'
                }
                return true
            }
    }
    ...
}

请看下面的答案