56
56
import org .springframework .validation .beanvalidation .LocalValidatorFactoryBean ;
57
57
import org .springframework .web .HttpRequestHandler ;
58
58
import org .springframework .web .accept .ContentNegotiationManager ;
59
+ import org .springframework .web .bind .WebDataBinder ;
59
60
import org .springframework .web .bind .annotation .ExceptionHandler ;
60
61
import org .springframework .web .bind .annotation .ResponseStatus ;
61
62
import org .springframework .web .bind .support .ConfigurableWebBindingInitializer ;
@@ -351,11 +352,6 @@ protected void configureDefaultServletHandling(DefaultServletHandlerConfigurer c
351
352
*/
352
353
@ Bean
353
354
public RequestMappingHandlerAdapter requestMappingHandlerAdapter () {
354
- ConfigurableWebBindingInitializer webBindingInitializer = new ConfigurableWebBindingInitializer ();
355
- webBindingInitializer .setConversionService (mvcConversionService ());
356
- webBindingInitializer .setValidator (mvcValidator ());
357
- webBindingInitializer .setMessageCodesResolver (getMessageCodesResolver ());
358
-
359
355
List <HandlerMethodArgumentResolver > argumentResolvers = new ArrayList <HandlerMethodArgumentResolver >();
360
356
addArgumentResolvers (argumentResolvers );
361
357
@@ -365,7 +361,7 @@ public RequestMappingHandlerAdapter requestMappingHandlerAdapter() {
365
361
RequestMappingHandlerAdapter adapter = new RequestMappingHandlerAdapter ();
366
362
adapter .setContentNegotiationManager (mvcContentNegotiationManager ());
367
363
adapter .setMessageConverters (getMessageConverters ());
368
- adapter .setWebBindingInitializer (webBindingInitializer );
364
+ adapter .setWebBindingInitializer (getConfigurableWebBindingInitializer () );
369
365
adapter .setCustomArgumentResolvers (argumentResolvers );
370
366
adapter .setCustomReturnValueHandlers (returnValueHandlers );
371
367
@@ -385,7 +381,19 @@ public RequestMappingHandlerAdapter requestMappingHandlerAdapter() {
385
381
}
386
382
387
383
/**
388
- * Returns a {@link FormattingConversionService} for use with annotated
384
+ * Return the {@link ConfigurableWebBindingInitializer} to use for
385
+ * initializing all {@link WebDataBinder} instances.
386
+ */
387
+ protected ConfigurableWebBindingInitializer getConfigurableWebBindingInitializer () {
388
+ ConfigurableWebBindingInitializer initializer = new ConfigurableWebBindingInitializer ();
389
+ initializer .setConversionService (mvcConversionService ());
390
+ initializer .setValidator (mvcValidator ());
391
+ initializer .setMessageCodesResolver (getMessageCodesResolver ());
392
+ return initializer ;
393
+ }
394
+
395
+ /**
396
+ * Return a {@link FormattingConversionService} for use with annotated
389
397
* controller methods and the {@code spring:eval} JSP tag.
390
398
* Also see {@link #addFormatters} as an alternative to overriding this method.
391
399
*/
@@ -397,7 +405,7 @@ public FormattingConversionService mvcConversionService() {
397
405
}
398
406
399
407
/**
400
- * Returns a global {@link Validator} instance for example for validating
408
+ * Return a global {@link Validator} instance for example for validating
401
409
* {@code @ModelAttribute} and {@code @RequestBody} method arguments.
402
410
* Delegates to {@link #getValidator()} first and if that returns {@code null}
403
411
* checks the classpath for the presence of a JSR-303 implementations
0 commit comments