From b96e68b5149c0e1623a4497e6f72e279f23a61ee Mon Sep 17 00:00:00 2001 From: Jeff Brown Date: Fri, 2 Dec 2011 08:39:55 -0600 Subject: [PATCH] GRAILS-8415 - Add subscript operator support to commandObject.errors --- ...ontrollerActionTransformerCommandObjectSpec.groovy | 11 +++++++++++ .../web/plugins/support/ValidationSupport.groovy | 8 +++----- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/grails-plugin-controllers/src/test/groovy/org/codehaus/groovy/grails/compiler/web/ControllerActionTransformerCommandObjectSpec.groovy b/grails-plugin-controllers/src/test/groovy/org/codehaus/groovy/grails/compiler/web/ControllerActionTransformerCommandObjectSpec.groovy index 60043a99d33..bd4b22ba544 100644 --- a/grails-plugin-controllers/src/test/groovy/org/codehaus/groovy/grails/compiler/web/ControllerActionTransformerCommandObjectSpec.groovy +++ b/grails-plugin-controllers/src/test/groovy/org/codehaus/groovy/grails/compiler/web/ControllerActionTransformerCommandObjectSpec.groovy @@ -275,6 +275,17 @@ class ControllerActionTransformerCommandObjectSpec extends Specification { model.person.theAnswer == 42 } + void 'Test subscript operator on command object errors'() { + when: + testController.params.name = 'Maynard' + def model = testController.closureAction() + + then: + model.person.hasErrors() + model.person.name == 'Maynard' + 'matches.invalid.name' in model.person.errors['name'].codes + } + void "Test validation"() { when: testController.params.name = 'JFK' diff --git a/grails-plugin-validation/src/main/groovy/org/codehaus/groovy/grails/web/plugins/support/ValidationSupport.groovy b/grails-plugin-validation/src/main/groovy/org/codehaus/groovy/grails/web/plugins/support/ValidationSupport.groovy index cb00af9cbeb..ba8cf4dfffd 100644 --- a/grails-plugin-validation/src/main/groovy/org/codehaus/groovy/grails/web/plugins/support/ValidationSupport.groovy +++ b/grails-plugin-validation/src/main/groovy/org/codehaus/groovy/grails/web/plugins/support/ValidationSupport.groovy @@ -15,11 +15,9 @@ */ package org.codehaus.groovy.grails.web.plugins.support -import org.codehaus.groovy.grails.validation.ConstraintsEvaluator -import org.codehaus.groovy.grails.validation.DefaultConstraintEvaluator +import grails.validation.ValidationErrors + import org.codehaus.groovy.grails.web.context.ServletContextHolder -import org.springframework.validation.BeanPropertyBindingResult -import org.springframework.web.context.ContextLoader import org.springframework.web.context.support.WebApplicationContextUtils @@ -41,7 +39,7 @@ class ValidationSupport { } def messageSource = ctx?.containsBean('messageSource') ? ctx.getBean('messageSource') : null - def localErrors = new BeanPropertyBindingResult(object, object.class.name) + def localErrors = new ValidationErrors(object, object.class.name) def originalErrors = object.errors for(originalError in originalErrors.allErrors) { if(originalErrors.getFieldError(originalError.field)?.bindingFailure) {