Add initial support for MVC namespace view resolution config

<mvc:view-resolution /> now allows to configure easily
view resolvers.

Issue: SPR-7093
This commit is contained in:
Siva Prasad Valluru
2013-12-15 18:15:04 +05:30
committed by Rossen Stoyanchev
parent b318880661
commit 92402e7715
6 changed files with 260 additions and 1 deletions

View File

@@ -84,6 +84,13 @@ import org.springframework.web.servlet.resource.ResourceResolver;
import org.springframework.web.servlet.resource.ResourceTransformer;
import org.springframework.web.servlet.theme.ThemeChangeInterceptor;
import org.springframework.web.util.UrlPathHelper;
import org.springframework.web.servlet.view.BeanNameViewResolver;
import org.springframework.web.servlet.view.InternalResourceView;
import org.springframework.web.servlet.view.InternalResourceViewResolver;
import org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer;
import org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver;
import org.springframework.web.servlet.view.tiles2.TilesConfigurer;
import org.springframework.web.servlet.view.tiles2.TilesViewResolver;
import static org.junit.Assert.*;
@@ -114,6 +121,7 @@ public class MvcNamespaceTests {
handlerMethod = new InvocableHandlerMethod(handler, method);
}
@Test
public void testDefaultConfig() throws Exception {
loadBeanDefinitions("mvc-config.xml", 13);
@@ -546,6 +554,33 @@ public class MvcNamespaceTests {
(DeferredResultProcessingInterceptor[]) fieldAccessor.getPropertyValue("deferredResultInterceptors");
assertEquals(1, deferredResultInterceptors.length);
}
@Test
public void testViewResolvers() throws Exception{
loadBeanDefinitions("mvc-config-view-resolvers.xml", 6);
InternalResourceViewResolver internalResourceViewResolver=appContext.getBean(InternalResourceViewResolver.class);
assertNotNull(internalResourceViewResolver);
InternalResourceView jstlView=(InternalResourceView) internalResourceViewResolver.resolveViewName("xyz", Locale.ENGLISH);
assertEquals(jstlView.getUrl(), "/WEB-INF/xyz.jsp");
BeanNameViewResolver beanNameUrlHandlerMapping=appContext.getBean(BeanNameViewResolver.class);
assertNotNull(beanNameUrlHandlerMapping);
TilesConfigurer tilesConfigurer=appContext.getBean(TilesConfigurer.class);
assertNotNull(tilesConfigurer);
TilesViewResolver tilesViewResolver=appContext.getBean(TilesViewResolver.class);
assertNotNull(tilesViewResolver);
FreeMarkerConfigurer freeMarkerConfigurer=appContext.getBean(FreeMarkerConfigurer.class);
assertNotNull(freeMarkerConfigurer);
FreeMarkerViewResolver freeMarkerViewResolver=appContext.getBean(FreeMarkerViewResolver.class);
assertNotNull(freeMarkerViewResolver);
}
@Test
public void testPathMatchingHandlerMappings() throws Exception {