@ -102,6 +102,7 @@ import org.springframework.web.servlet.HandlerAdapter;
@@ -102,6 +102,7 @@ import org.springframework.web.servlet.HandlerAdapter;
import org.springframework.web.servlet.HandlerExceptionResolver ;
import org.springframework.web.servlet.HandlerMapping ;
import org.springframework.web.servlet.LocaleResolver ;
import org.springframework.web.servlet.RequestToViewNameTranslator ;
import org.springframework.web.servlet.View ;
import org.springframework.web.servlet.ViewResolver ;
import org.springframework.web.servlet.config.annotation.AsyncSupportConfigurer ;
@ -136,6 +137,7 @@ import org.springframework.web.servlet.support.AbstractFlashMapManager;
@@ -136,6 +137,7 @@ import org.springframework.web.servlet.support.AbstractFlashMapManager;
import org.springframework.web.servlet.support.SessionFlashMapManager ;
import org.springframework.web.servlet.view.AbstractView ;
import org.springframework.web.servlet.view.ContentNegotiatingViewResolver ;
import org.springframework.web.servlet.view.DefaultRequestToViewNameTranslator ;
import org.springframework.web.util.UrlPathHelper ;
import static org.assertj.core.api.Assertions.assertThat ;
@ -404,6 +406,26 @@ class WebMvcAutoConfigurationTests {
@@ -404,6 +406,26 @@ class WebMvcAutoConfigurationTests {
} ) ;
}
@Test
void customViewNameTranslatorWithMatchingNameReplacesDefaultViewNameTranslator ( ) {
this . contextRunner . withBean ( "viewNameTranslator" , CustomViewNameTranslator . class , CustomViewNameTranslator : : new )
. run ( ( context ) - > {
assertThat ( context ) . hasSingleBean ( RequestToViewNameTranslator . class ) ;
assertThat ( context . getBean ( "viewNameTranslator" ) ) . isInstanceOf ( CustomViewNameTranslator . class ) ;
} ) ;
}
@Test
void customViewNameTranslatorWithDifferentNameDoesNotReplaceDefaultViewNameTranslator ( ) {
this . contextRunner
. withBean ( "customViewNameTranslator" , CustomViewNameTranslator . class , CustomViewNameTranslator : : new )
. run ( ( context ) - > {
assertThat ( context . getBean ( "customViewNameTranslator" ) ) . isInstanceOf ( CustomViewNameTranslator . class ) ;
assertThat ( context . getBean ( "viewNameTranslator" ) )
. isInstanceOf ( DefaultRequestToViewNameTranslator . class ) ;
} ) ;
}
@Test
void defaultDateFormat ( ) {
this . contextRunner . run ( ( context ) - > {
@ -1458,6 +1480,15 @@ class WebMvcAutoConfigurationTests {
@@ -1458,6 +1480,15 @@ class WebMvcAutoConfigurationTests {
}
static class CustomViewNameTranslator implements RequestToViewNameTranslator {
@Override
public String getViewName ( HttpServletRequest requestAttributes ) {
return null ;
}
}
@Configuration ( proxyBeanMethods = false )
static class ResourceHandlersWithChildAndParentContextConfiguration {