Grails 2.2.3
My Custom Validator
bankCode( nullable: false, blank: false, minSize: 8, maxSize: 8, validator: {pValue, pDomain ->
List<CashAccountMapping> lCashAccountMappingList =
CashAccountMapping.findAllByBankCodeAndSchoolYear(pValue, pDomain.schoolYear )
lCashAccountMappingList = lCashAccountMappingList - pDomain
if (lCashAccountMappingList) {
return 'cashAccountMapping.invalid.validator.message'
}
})
My custom error message is not returning as I would have thought. It is somewhere below how do I get out? I want to get it to a string of all errors to display to the user
if ( newCashAccountMapping.validate() ) {
newCashAccountMapping.save(flush:true)
}
else {
newCashAccountMapping.errors.each { it
println it //Add to a string of errors
}
}
In my messages.properties
cashAccountMapping.invalid.validator.message={0} XYZ
I get the following when running the code:
[Field error in object 'com.srm.ledger.CashAccountMapping' on field 'bankCode': rejected value [CK01 036]; codes [com.srm.ledger.CashAccountMapping.bankCode.validator.error.com.srm.ledger.CashAccountMapping.bankCode,com.srm.ledger.CashAccountMapping.bankCode.validator.error.bankCode,com.srm.ledger.CashAccountMapping.bankCode.validator.error.java.lang.String,com.srm.ledger.CashAccountMapping.bankCode.validator.error,cashAccountMapping.bankCode.validator.error.com.srm.ledger.CashAccountMapping.bankCode,cashAccountMapping.bankCode.validator.error.bankCode,cashAccountMapping.bankCode.validator.error.java.lang.String,cashAccountMapping.bankCode.validator.error,com.srm.ledger.CashAccountMapping.bankCode.cashAccountMapping.invalid.validator.message.com.srm.ledger.CashAccountMapping.bankCode,com.srm.ledger.CashAccountMapping.bankCode.cashAccountMapping.invalid.validator.message.bankCode,com.srm.ledger.CashAccountMapping.bankCode.cashAccountMapping.invalid.validator.message.java.lang.String,com.srm.ledger.CashAccountMapping.bankCode.cashAccountMapping.invalid.validator.message,cashAccountMapping.bankCode.cashAccountMapping.invalid.validator.message.com.srm.ledger.CashAccountMapping.bankCode,cashAccountMapping.bankCode.cashAccountMapping.invalid.validator.message.bankCode,cashAccountMapping.bankCode.cashAccountMapping.invalid.validator.message.java.lang.String,cashAccountMapping.bankCode.cashAccountMapping.invalid.validator.message,cashAccountMapping.invalid.validator.message.com.srm.ledger.CashAccountMapping.bankCode,cashAccountMapping.invalid.validator.message.bankCode,cashAccountMapping.invalid.validator.message.java.lang.String,cashAccountMapping.invalid.validator.message]; arguments [bankCode,Cash Account Mapping,CK01 036]; default message [Property [{0}] of class [{1}] with value [{2}] does not pass custom validation]]