如何将Spring 4与Apache Tiles 3集成?

And*_*rew 4 java spring apache-tiles tiles-3 spring-4

我正在使用Spring框架版本4,我混淆了哪个文件夹放置XML文件,特别是tile定义以及在哪里找到解析器bean.

小智 5

定义TilesConfigurerbean 时指定tile定义xml .如果您使用的是基于Java的配置,则看起来像:

@Bean
public TilesConfigurer tilesConfigurer(){
    TilesConfigurer tilesConfigurer = new TilesConfigurer();
    tilesConfigurer.setDefinitions(new String[] {"/WEB-INF/**/tiles.xml"});
    tilesConfigurer.setCheckRefresh(true);
    return tilesConfigurer;
}
Run Code Online (Sandbox Code Playgroud)

如果您使用的是基于xml的配置,则看起来像:

<bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles3.TilesConfigurer">
    <property name="definitions">
        <list>
            <value>/WEB-INF/views/**/tiles.xml</value>
        </list>
    </property>
</bean>
Run Code Online (Sandbox Code Playgroud)

当您指定时/WEB-INF/views/**/tiles.xml,您将告诉TilesConfigurer/Web-INF/views目录下递归查找所有切片定义.


Sha*_*suf 5

您需要使用几个bean配置servlet-context,使tiles.xml使用layout.xml模板和views.xml中的其他定义来派生tiles.xml中的基本定义:

  <beans:bean id="tilesConfigurer"
    class="org.springframework.web.servlet.view.tiles3.TilesConfigurer">
    <beans:property name="definitions">
        <beans:list>
            <beans:value>/WEB-INF/tiles.xml</beans:value>
            <beans:value>/WEB-INF/views/**/views.xml</beans:value>
        </beans:list>
    </beans:property>
</beans:bean>
<beans:bean id="tilesViewResolver"
    class="org.springframework.web.servlet.view.UrlBasedViewResolver">
    <beans:property name="viewClass">
        <beans:value>
            org.springframework.web.servlet.view.tiles3.TilesView
        </beans:value>
    </beans:property>
    <beans:property name="order" value="0"/>
</beans:bean>
Run Code Online (Sandbox Code Playgroud)