|
|
|
@ -50,6 +50,7 @@ import org.springframework.validation.Errors; |
|
|
|
import org.springframework.validation.SmartValidator; |
|
|
|
import org.springframework.validation.SmartValidator; |
|
|
|
import org.springframework.validation.Validator; |
|
|
|
import org.springframework.validation.Validator; |
|
|
|
import org.springframework.validation.annotation.ValidationAnnotationUtils; |
|
|
|
import org.springframework.validation.annotation.ValidationAnnotationUtils; |
|
|
|
|
|
|
|
import org.springframework.web.bind.MethodArgumentNotValidException; |
|
|
|
import org.springframework.web.bind.WebDataBinder; |
|
|
|
import org.springframework.web.bind.WebDataBinder; |
|
|
|
import org.springframework.web.bind.annotation.ModelAttribute; |
|
|
|
import org.springframework.web.bind.annotation.ModelAttribute; |
|
|
|
import org.springframework.web.bind.support.WebDataBinderFactory; |
|
|
|
import org.springframework.web.bind.support.WebDataBinderFactory; |
|
|
|
@ -145,7 +146,7 @@ public class ModelAttributeMethodProcessor implements HandlerMethodArgumentResol |
|
|
|
try { |
|
|
|
try { |
|
|
|
attribute = createAttribute(name, parameter, binderFactory, webRequest); |
|
|
|
attribute = createAttribute(name, parameter, binderFactory, webRequest); |
|
|
|
} |
|
|
|
} |
|
|
|
catch (BindException ex) { |
|
|
|
catch (MethodArgumentNotValidException ex) { |
|
|
|
if (isBindExceptionRequired(parameter)) { |
|
|
|
if (isBindExceptionRequired(parameter)) { |
|
|
|
// No BindingResult parameter -> fail with BindException
|
|
|
|
// No BindingResult parameter -> fail with BindException
|
|
|
|
throw ex; |
|
|
|
throw ex; |
|
|
|
@ -314,7 +315,7 @@ public class ModelAttributeMethodProcessor implements HandlerMethodArgumentResol |
|
|
|
if (!parameter.isOptional()) { |
|
|
|
if (!parameter.isOptional()) { |
|
|
|
try { |
|
|
|
try { |
|
|
|
Object target = BeanUtils.instantiateClass(ctor, args); |
|
|
|
Object target = BeanUtils.instantiateClass(ctor, args); |
|
|
|
throw new BindException(result) { |
|
|
|
throw new MethodArgumentNotValidException(parameter, result) { |
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public Object getTarget() { |
|
|
|
public Object getTarget() { |
|
|
|
return target; |
|
|
|
return target; |
|
|
|
@ -325,7 +326,7 @@ public class ModelAttributeMethodProcessor implements HandlerMethodArgumentResol |
|
|
|
// swallow and proceed without target instance
|
|
|
|
// swallow and proceed without target instance
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
throw new BindException(result); |
|
|
|
throw new MethodArgumentNotValidException(parameter, result); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return BeanUtils.instantiateClass(ctor, args); |
|
|
|
return BeanUtils.instantiateClass(ctor, args); |
|
|
|
|