【发布时间】:2015-09-02 15:10:14
【问题描述】:
Grails 2.2.3
我的自定义验证器
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'
}
})
我的自定义错误消息没有像我想象的那样返回。它在下面的某个地方我怎么出去? 我想把它变成一个包含所有错误的字符串来显示给用户
if ( newCashAccountMapping.validate() ) {
newCashAccountMapping.save(flush:true)
}
else {
newCashAccountMapping.errors.each { it
println it //Add to a string of errors
}
}
在我的messages.properties中
cashAccountMapping.invalid.validator.message={0} XYZ
运行代码时得到以下信息:
[字段“bankCode”上的对象“com.srm.ledger.CashAccountMapping”中的字段错误:拒绝值 [CK01 036];代码 [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.ban kCode.cashAccountMapping.invalid.validator.message.com.srm.ledger.CashAccountMapping.bankCode,cashAccountMapping.bankCode.cashAccountMapping.invalid.validator.message.bankCode,cashAccountMapping.bankCode.cashAccountMapping.invalid.validator.message.java.lang。字符串,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];参数 [bankCode,Cash Account Mapping,CK01 036];默认消息 [类 [{1}] 的属性 [{0}],值为 [{2}] 未通过自定义验证]]
【问题讨论】:
标签: validation grails groovy