5656import org .springframework .validation .beanvalidation .LocalValidatorFactoryBean ;
5757import org .springframework .web .HttpRequestHandler ;
5858import org .springframework .web .accept .ContentNegotiationManager ;
59+ import org .springframework .web .bind .WebDataBinder ;
5960import org .springframework .web .bind .annotation .ExceptionHandler ;
6061import org .springframework .web .bind .annotation .ResponseStatus ;
6162import org .springframework .web .bind .support .ConfigurableWebBindingInitializer ;
@@ -351,11 +352,6 @@ protected void configureDefaultServletHandling(DefaultServletHandlerConfigurer c
351352 */
352353 @ Bean
353354 public RequestMappingHandlerAdapter requestMappingHandlerAdapter () {
354- ConfigurableWebBindingInitializer webBindingInitializer = new ConfigurableWebBindingInitializer ();
355- webBindingInitializer .setConversionService (mvcConversionService ());
356- webBindingInitializer .setValidator (mvcValidator ());
357- webBindingInitializer .setMessageCodesResolver (getMessageCodesResolver ());
358-
359355 List <HandlerMethodArgumentResolver > argumentResolvers = new ArrayList <HandlerMethodArgumentResolver >();
360356 addArgumentResolvers (argumentResolvers );
361357
@@ -365,7 +361,7 @@ public RequestMappingHandlerAdapter requestMappingHandlerAdapter() {
365361 RequestMappingHandlerAdapter adapter = new RequestMappingHandlerAdapter ();
366362 adapter .setContentNegotiationManager (mvcContentNegotiationManager ());
367363 adapter .setMessageConverters (getMessageConverters ());
368- adapter .setWebBindingInitializer (webBindingInitializer );
364+ adapter .setWebBindingInitializer (getConfigurableWebBindingInitializer () );
369365 adapter .setCustomArgumentResolvers (argumentResolvers );
370366 adapter .setCustomReturnValueHandlers (returnValueHandlers );
371367
@@ -385,7 +381,19 @@ public RequestMappingHandlerAdapter requestMappingHandlerAdapter() {
385381 }
386382
387383 /**
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
389397 * controller methods and the {@code spring:eval} JSP tag.
390398 * Also see {@link #addFormatters} as an alternative to overriding this method.
391399 */
@@ -397,7 +405,7 @@ public FormattingConversionService mvcConversionService() {
397405 }
398406
399407 /**
400- * Returns a global {@link Validator} instance for example for validating
408+ * Return a global {@link Validator} instance for example for validating
401409 * {@code @ModelAttribute} and {@code @RequestBody} method arguments.
402410 * Delegates to {@link #getValidator()} first and if that returns {@code null}
403411 * checks the classpath for the presence of a JSR-303 implementations
0 commit comments