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:
committed by
Rossen Stoyanchev
parent
b318880661
commit
92402e7715
@@ -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 {
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:mvc="http://www.springframework.org/schema/mvc"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
|
||||
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
|
||||
|
||||
<mvc:view-resolvers>
|
||||
<mvc:jsp prefix="/WEB-INF/" suffix=".jsp" />
|
||||
<mvc:bean-name />
|
||||
<mvc:tiles definitions="/tiles.xml" />
|
||||
|
||||
<mvc:freemarker prefix="" suffix=".ftl" templateLoaderPath="/WEB-INF/ftl/" />
|
||||
</mvc:view-resolvers>
|
||||
|
||||
</beans>
|
||||
|
||||
20
spring-webmvc/src/test/resources/tiles.xml
Normal file
20
spring-webmvc/src/test/resources/tiles.xml
Normal file
@@ -0,0 +1,20 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE tiles-definitions PUBLIC
|
||||
"-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN"
|
||||
"http://tiles.apache.org/dtds/tiles-config_2_0.dtd">
|
||||
<tiles-definitions>
|
||||
<definition name="base.definition"
|
||||
template="/WEB-INF/jsp/layout.jsp">
|
||||
<put-attribute name="title" value="" />
|
||||
<put-attribute name="header" value="/WEB-INF/jsp/header.jsp" />
|
||||
<put-attribute name="menu" value="/WEB-INF/jsp/menu.jsp" />
|
||||
<put-attribute name="body" value="" />
|
||||
<put-attribute name="footer" value="/WEB-INF/jsp/footer.jsp" />
|
||||
</definition>
|
||||
|
||||
<definition name="contact" extends="base.definition">
|
||||
<put-attribute name="title" value="Contact Manager" />
|
||||
<put-attribute name="body" value="/WEB-INF/jsp/contact.jsp" />
|
||||
</definition>
|
||||
|
||||
</tiles-definitions>
|
||||
Reference in New Issue
Block a user