Add order attribute to MVC ViewResolver config

The ViewResolverComposite that contains the ViewResolver's registered
throug the MVC Java config and namespace can now be assigned an
explicit order.
This commit is contained in:
Rossen Stoyanchev
2014-09-30 10:36:39 -04:00
parent 3b1d3257d5
commit 77bbfb6e7e
6 changed files with 84 additions and 3 deletions

View File

@@ -767,6 +767,16 @@ public class MvcNamespaceTests {
assertSame(manager, this.appContext.getBean(ContentNegotiationManager.class));
}
@Test
public void testViewResolutionWithOrderSet() throws Exception {
loadBeanDefinitions("mvc-config-view-resolution-custom-order.xml", 1);
ViewResolverComposite compositeResolver = this.appContext.getBean(ViewResolverComposite.class);
assertNotNull(compositeResolver);
assertEquals("Actual: " + compositeResolver.getViewResolvers(), 1, compositeResolver.getViewResolvers().size());
assertEquals(123, compositeResolver.getOrder());
}
@Test
public void testPathMatchingHandlerMappings() throws Exception {
loadBeanDefinitions("mvc-config-path-matching-mappings.xml", 22);

View File

@@ -246,6 +246,20 @@ public class WebMvcConfigurationSupportTests {
assertNull(resolver.resolveViewName("anyViewName", Locale.ENGLISH));
}
@Test
public void mvcViewResolverWithOrderSet() {
ApplicationContext context = initContext(CustomViewResolverOrderConfig.class);
ViewResolverComposite resolver = context.getBean("mvcViewResolver", ViewResolverComposite.class);
Map<String, ViewResolver> map = BeanFactoryUtils.beansOfTypeIncludingAncestors(
context, ViewResolver.class, true, false);
assertNotNull(resolver);
assertEquals(1, resolver.getViewResolvers().size());
assertEquals(InternalResourceViewResolver.class, resolver.getViewResolvers().get(0).getClass());
assertEquals(123, resolver.getOrder());
}
@Test
public void defaultPathMatchConfiguration() throws Exception {
ApplicationContext context = initContext(WebConfig.class);
@@ -286,6 +300,16 @@ public class WebMvcConfigurationSupportTests {
}
}
@EnableWebMvc
@Configuration
public static class CustomViewResolverOrderConfig extends WebMvcConfigurerAdapter {
@Override
public void configureViewResolvers(ViewResolverRegistry registry) {
registry.jsp();
registry.order(123);
}
}
@Controller
public static class TestController {