diff --git a/org.springframework.web.servlet/src/main/java/org/springframework/web/servlet/view/ContentNegotiatingViewResolver.java b/org.springframework.web.servlet/src/main/java/org/springframework/web/servlet/view/ContentNegotiatingViewResolver.java index 5110e3f7ce..7d82a8c16a 100644 --- a/org.springframework.web.servlet/src/main/java/org/springframework/web/servlet/view/ContentNegotiatingViewResolver.java +++ b/org.springframework.web.servlet/src/main/java/org/springframework/web/servlet/view/ContentNegotiatingViewResolver.java @@ -314,7 +314,7 @@ public class ContentNegotiatingViewResolver extends WebApplicationObjectSupport */ protected List getMediaTypes(HttpServletRequest request) { if (this.favorPathExtension) { - String requestUri = urlPathHelper.getRequestUri(request); + String requestUri = urlPathHelper.getLookupPathForRequest(request); String filename = WebUtils.extractFullFilenameFromUrlPath(requestUri); MediaType mediaType = getMediaTypeFromFilename(filename); if (mediaType != null) { diff --git a/org.springframework.web.servlet/src/test/java/org/springframework/web/servlet/view/ContentNegotiatingViewResolverTests.java b/org.springframework.web.servlet/src/test/java/org/springframework/web/servlet/view/ContentNegotiatingViewResolverTests.java index 77d072adbd..70bf0627cf 100644 --- a/org.springframework.web.servlet/src/test/java/org/springframework/web/servlet/view/ContentNegotiatingViewResolverTests.java +++ b/org.springframework.web.servlet/src/test/java/org/springframework/web/servlet/view/ContentNegotiatingViewResolverTests.java @@ -94,6 +94,17 @@ public class ContentNegotiatingViewResolverTests { result); } + // SPR-8678 + + @Test + public void getMediaTypeFilenameWithContextPath() { + request.setContextPath("/project-1.0.0.M3"); + request.setRequestURI("/project-1.0.0.M3/"); + assertTrue("Context path should be excluded", viewResolver.getMediaTypes(request).isEmpty()); + request.setRequestURI("/project-1.0.0.M3"); + assertTrue("Context path should be excluded", viewResolver.getMediaTypes(request).isEmpty()); + } + @Test public void getMediaTypeParameter() { viewResolver.setFavorParameter(true);