diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/config/annotation/WebMvcConfigurationSupport.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/config/annotation/WebMvcConfigurationSupport.java
index 08fa7d1022..084250ae49 100644
--- a/spring-webmvc/src/main/java/org/springframework/web/servlet/config/annotation/WebMvcConfigurationSupport.java
+++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/config/annotation/WebMvcConfigurationSupport.java
@@ -81,6 +81,7 @@ import org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice;
import org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver;
import org.springframework.web.servlet.resource.ResourceUrlProvider;
import org.springframework.web.servlet.resource.ResourceUrlProviderExposingInterceptor;
+import org.springframework.web.servlet.view.InternalResourceViewResolver;
import org.springframework.web.servlet.view.ViewResolverComposite;
import org.springframework.web.util.UrlPathHelper;
@@ -779,6 +780,9 @@ public class WebMvcConfigurationSupport implements ApplicationContextAware, Serv
* {@link org.springframework.core.Ordered#HIGHEST_PRECEDENCE
* Ordered.HIGHEST_PRECEDENCE}.
*
+ *
An {@code InternalResourceViewResolver} is added by default if no other
+ * resolvers are configured.
+ *
* @since 4.1
*/
@Bean
@@ -788,9 +792,14 @@ public class WebMvcConfigurationSupport implements ApplicationContextAware, Serv
registry.setApplicationContext(this.applicationContext);
configureViewResolvers(registry);
+ List viewResolvers = registry.getViewResolvers();
+ if (viewResolvers.isEmpty()) {
+ viewResolvers.add(new InternalResourceViewResolver());
+ }
+
ViewResolverComposite composite = new ViewResolverComposite();
composite.setOrder(registry.getOrder());
- composite.setViewResolvers(registry.getViewResolvers());
+ composite.setViewResolvers(viewResolvers);
composite.setApplicationContext(this.applicationContext);
composite.setServletContext(this.servletContext);
return composite;
diff --git a/spring-webmvc/src/test/java/org/springframework/web/servlet/config/annotation/WebMvcConfigurationSupportTests.java b/spring-webmvc/src/test/java/org/springframework/web/servlet/config/annotation/WebMvcConfigurationSupportTests.java
index 7e704842a7..b7f8a8f382 100644
--- a/spring-webmvc/src/test/java/org/springframework/web/servlet/config/annotation/WebMvcConfigurationSupportTests.java
+++ b/spring-webmvc/src/test/java/org/springframework/web/servlet/config/annotation/WebMvcConfigurationSupportTests.java
@@ -49,6 +49,7 @@ import org.springframework.web.method.support.CompositeUriComponentsContributor;
import org.springframework.web.servlet.HandlerExceptionResolver;
import org.springframework.web.servlet.HandlerExecutionChain;
import org.springframework.web.servlet.ViewResolver;
+import org.springframework.web.servlet.view.InternalResourceViewResolver;
import org.springframework.web.servlet.view.ViewResolverComposite;
import org.springframework.web.servlet.handler.AbstractHandlerMapping;
import org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping;
@@ -208,7 +209,8 @@ public class WebMvcConfigurationSupportTests {
ViewResolverComposite compositeResolver = this.wac.getBean(ViewResolverComposite.class);
assertEquals(Ordered.LOWEST_PRECEDENCE, compositeResolver.getOrder());
List resolvers = compositeResolver.getViewResolvers();
- assertEquals(0, resolvers.size());
+ assertEquals(1, resolvers.size());
+ assertEquals(InternalResourceViewResolver.class, resolvers.get(0).getClass());
}
@Test