mvc:tiles-configurer supports preparer-factory and definitions-factory

Issue: SPR-13363
This commit is contained in:
Juergen Hoeller
2015-08-25 18:10:27 +02:00
parent 8cd283729b
commit 6aa9e0caf9
4 changed files with 51 additions and 28 deletions

View File

@@ -38,6 +38,7 @@ import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.MapperFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.dataformat.xml.XmlMapper;
import org.apache.tiles.definition.UnresolvingLocaleDefinitionsFactory;
import org.hamcrest.Matchers;
import org.joda.time.LocalDate;
import org.junit.Before;
@@ -136,6 +137,7 @@ import org.springframework.web.servlet.view.groovy.GroovyMarkupConfigurer;
import org.springframework.web.servlet.view.groovy.GroovyMarkupViewResolver;
import org.springframework.web.servlet.view.script.ScriptTemplateConfigurer;
import org.springframework.web.servlet.view.script.ScriptTemplateViewResolver;
import org.springframework.web.servlet.view.tiles3.SpringBeanPreparerFactory;
import org.springframework.web.servlet.view.tiles3.TilesConfigurer;
import org.springframework.web.servlet.view.tiles3.TilesViewResolver;
import org.springframework.web.servlet.view.velocity.VelocityConfigurer;
@@ -779,6 +781,8 @@ public class MvcNamespaceTests {
accessor = new DirectFieldAccessor(tilesConfigurer);
assertArrayEquals(definitions, (String[]) accessor.getPropertyValue("definitions"));
assertTrue((boolean) accessor.getPropertyValue("checkRefresh"));
assertEquals(UnresolvingLocaleDefinitionsFactory.class, accessor.getPropertyValue("definitionsFactoryClass"));
assertEquals(SpringBeanPreparerFactory.class, accessor.getPropertyValue("preparerFactoryClass"));
FreeMarkerConfigurer freeMarkerConfigurer = appContext.getBean(FreeMarkerConfigurer.class);
assertNotNull(freeMarkerConfigurer);

View File

@@ -2,42 +2,43 @@
<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.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<mvc:view-resolvers>
<mvc:bean-name />
<mvc:jsp view-class="org.springframework.web.servlet.view.InternalResourceView" />
<mvc:tiles />
<mvc:freemarker prefix="freemarker-" suffix=".freemarker" view-names="my*,*Report" />
<mvc:velocity cache-views="false" />
<mvc:groovy />
<mvc:script-template />
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" />
<ref bean="customResolver" />
<mvc:bean-name/>
<mvc:jsp view-class="org.springframework.web.servlet.view.InternalResourceView"/>
<mvc:tiles/>
<mvc:freemarker prefix="freemarker-" suffix=".freemarker" view-names="my*,*Report"/>
<mvc:velocity cache-views="false"/>
<mvc:groovy/>
<mvc:script-template/>
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"/>
<ref bean="customResolver"/>
</mvc:view-resolvers>
<bean id="customResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver" />
<bean id="customResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"/>
<mvc:tiles-configurer check-refresh="true" validate-definitions="true">
<mvc:definitions location="/org/springframework/web/servlet/resource/tiles/tiles1.xml" />
<mvc:definitions location="/org/springframework/web/servlet/resource/tiles/tiles2.xml" />
<mvc:tiles-configurer check-refresh="true" validate-definitions="true"
definitions-factory="org.apache.tiles.definition.UnresolvingLocaleDefinitionsFactory"
preparer-factory="org.springframework.web.servlet.view.tiles3.SpringBeanPreparerFactory">
<mvc:definitions location="/org/springframework/web/servlet/resource/tiles/tiles1.xml"/>
<mvc:definitions location="/org/springframework/web/servlet/resource/tiles/tiles2.xml"/>
</mvc:tiles-configurer>
<mvc:freemarker-configurer>
<mvc:template-loader-path location="/" />
<mvc:template-loader-path location="/test" />
<mvc:template-loader-path location="/"/>
<mvc:template-loader-path location="/test"/>
</mvc:freemarker-configurer>
<mvc:velocity-configurer resource-loader-path="/test" />
<mvc:velocity-configurer resource-loader-path="/test"/>
<mvc:groovy-configurer resource-loader-path="/test" cache-templates="false" auto-indent="true" />
<mvc:groovy-configurer resource-loader-path="/test" cache-templates="false" auto-indent="true"/>
<mvc:script-template-configurer engine-name="nashorn" render-function="render"
content-type="text/plain" charset="ISO-8859-1"
resource-loader-path="classpath:" shared-engine="false">
<mvc:script location="org/springframework/web/servlet/view/script/nashorn/render.js" />
<mvc:script location="org/springframework/web/servlet/view/script/nashorn/render.js"/>
</mvc:script-template-configurer>
</beans>