【问题标题】:How to integrate Spring 4 with Apache Tiles 3?如何将 Spring 4 与 Apache Tiles 3 集成?
【发布时间】:2018-07-13 00:49:15
【问题描述】:

我使用的是 Spring 框架第 4 版,我对放置 XML 文件的文件夹感到困惑,特别是 tile 定义以及在哪里可以找到解析器 bean。

【问题讨论】:

  • 提问时请添加相关标签,对增加人的吸引力很有帮助。

标签: java spring spring-4 apache-tiles tiles-3


【解决方案1】:

在定义TilesConfigurer bean 时指定了tile 定义xml。如果您使用基于 Java 的配置,则如下所示:

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

如果您使用基于 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>

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

【讨论】:

    【解决方案2】:

    您需要使用几个 bean 配置您的 servlet-context,使 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>
    

    【讨论】:

    • 您也可以使用 TilesViewResolver 代替 UrlBasedViewResolver (&lt;bean id="tilesViewResolver" class="org.springframework.web.servlet.view.tiles3.TilesViewResolver"/&gt;)。就不需要再配置viewClass了。
    【解决方案3】:

    docs 应该会为您解释这一切。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多