Java 如何将Spring4与ApacheTiles 3集成?

Java 如何将Spring4与ApacheTiles 3集成?,java,spring,spring-4,apache-tiles,tiles-3,Java,Spring,Spring 4,Apache Tiles,Tiles 3,我使用的是Spring framework版本4,我弄不清楚该将XML文件放在哪个文件夹中,特别是磁贴定义以及在哪里可以找到解析器bean。应该为您解释所有这些。在定义磁贴配置器bean时指定了磁贴定义XML。如果您使用的是基于Java的配置,则如下所示: @Bean public TilesConfigurer tilesConfigurer(){ TilesConfigurer tilesConfigurer = new TilesConfigurer(); tilesCon

我使用的是Spring framework版本4,我弄不清楚该将XML文件放在哪个文件夹中,特别是磁贴定义以及在哪里可以找到解析器bean。

应该为您解释所有这些。

在定义
磁贴配置器
bean时指定了磁贴定义XML。如果您使用的是基于Java的配置,则如下所示:

@Bean
public TilesConfigurer tilesConfigurer(){
    TilesConfigurer tilesConfigurer = new TilesConfigurer();
    tilesConfigurer.setDefinitions(new String[] {"/WEB-INF/**/tiles.xml"});
    tilesConfigurer.setCheckRefresh(true);
    return tilesConfigurer;
}
<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>
如果您使用的是基于xml的配置,则如下所示:

@Bean
public TilesConfigurer tilesConfigurer(){
    TilesConfigurer tilesConfigurer = new TilesConfigurer();
    tilesConfigurer.setDefinitions(new String[] {"/WEB-INF/**/tiles.xml"});
    tilesConfigurer.setCheckRefresh(true);
    return tilesConfigurer;
}
<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>

/WEB-INF/views/**/tiles.xml

当您指定
/WEB-INF/views/**/tiles.xml
时,您告诉
tileConfigure
递归查找
/WEB-INF/views
目录下的所有tile定义。

您需要使用两个bean配置servlet上下文,make tiles.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>

/WEB-INF/tiles.xml
/WEB-INF/views/**/views.xml
org.springframework.web.servlet.view.tiles3.TilesView

请在提问时添加相关标记,添加人脉吸引力非常有帮助。您也可以使用TileViewResolver而不是UrlBasedViewResolver(
)。您不需要配置viewClass。