|
119 | 119 | import org.springframework.web.servlet.view.BeanNameViewResolver;
|
120 | 120 | import org.springframework.web.servlet.view.ContentNegotiatingViewResolver;
|
121 | 121 | import org.springframework.web.servlet.view.InternalResourceViewResolver;
|
| 122 | +import org.springframework.web.util.UrlPathHelper; |
122 | 123 |
|
123 | 124 | /**
|
124 | 125 | * {@link EnableAutoConfiguration Auto-configuration} for {@link EnableWebMvc Web MVC}.
|
@@ -188,16 +189,20 @@ public static class WebMvcAutoConfigurationAdapter implements WebMvcConfigurer {
|
188 | 189 |
|
189 | 190 | private final ObjectProvider<HttpMessageConverters> messageConvertersProvider;
|
190 | 191 |
|
| 192 | + private final ObjectProvider<DispatcherServletPath> dispatcherServletPath; |
| 193 | + |
191 | 194 | final ResourceHandlerRegistrationCustomizer resourceHandlerRegistrationCustomizer;
|
192 | 195 |
|
193 | 196 | public WebMvcAutoConfigurationAdapter(ResourceProperties resourceProperties, WebMvcProperties mvcProperties,
|
194 | 197 | ListableBeanFactory beanFactory, ObjectProvider<HttpMessageConverters> messageConvertersProvider,
|
195 |
| - ObjectProvider<ResourceHandlerRegistrationCustomizer> resourceHandlerRegistrationCustomizerProvider) { |
| 198 | + ObjectProvider<ResourceHandlerRegistrationCustomizer> resourceHandlerRegistrationCustomizerProvider, |
| 199 | + ObjectProvider<DispatcherServletPath> dispatcherServletPath) { |
196 | 200 | this.resourceProperties = resourceProperties;
|
197 | 201 | this.mvcProperties = mvcProperties;
|
198 | 202 | this.beanFactory = beanFactory;
|
199 | 203 | this.messageConvertersProvider = messageConvertersProvider;
|
200 | 204 | this.resourceHandlerRegistrationCustomizer = resourceHandlerRegistrationCustomizerProvider.getIfAvailable();
|
| 205 | + this.dispatcherServletPath = dispatcherServletPath; |
201 | 206 | }
|
202 | 207 |
|
203 | 208 | @Override
|
@@ -227,6 +232,14 @@ public void configurePathMatch(PathMatchConfigurer configurer) {
|
227 | 232 | configurer.setUseSuffixPatternMatch(this.mvcProperties.getPathmatch().isUseSuffixPattern());
|
228 | 233 | configurer.setUseRegisteredSuffixPatternMatch(
|
229 | 234 | this.mvcProperties.getPathmatch().isUseRegisteredSuffixPattern());
|
| 235 | + this.dispatcherServletPath.ifAvailable((dispatcherPath) -> { |
| 236 | + String servletUrlMapping = dispatcherPath.getServletUrlMapping(); |
| 237 | + if (servletUrlMapping.equals("/")) { |
| 238 | + UrlPathHelper urlPathHelper = new UrlPathHelper(); |
| 239 | + urlPathHelper.setAlwaysUseFullPath(true); |
| 240 | + configurer.setUrlPathHelper(urlPathHelper); |
| 241 | + } |
| 242 | + }); |
230 | 243 | }
|
231 | 244 |
|
232 | 245 | @Override
|
|
0 commit comments