4

I am using Spring framework version 4 and I get confused which folder to put the XML files, specially the tile definitions and where to find the resolver bean.

informatik01
  • 16,038
  • 10
  • 74
  • 104
Andoy Abarquez
  • 1,119
  • 4
  • 17
  • 30

3 Answers3

5

The tile definition xml is specified when you define the TilesConfigurer bean. If you are using Java-based configuration this would look like:

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

If you are using xml-based configuration this would look like:

<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>

When you specify /WEB-INF/views/**/tiles.xml, you are telling the TilesConfigurer to look for all tiles definitions recursively under the /Web-INF/views directory.

honk
  • 9,137
  • 11
  • 75
  • 83
MGB
  • 81
  • 1
  • 4
5

you need to configure your servlet-context with couple of beans, make tiles.xml to use layout template and rest of the definitions in views.xml to derive the base definition in 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>
Shahid Yousuf
  • 310
  • 4
  • 5
  • You can also use the TilesViewResolver instead of the UrlBasedViewResolver (``````). You don't need to configure the viewClass then. – OlgaMaciaszek Jan 04 '16 at 13:29
0

The docs should explain all this for you.

mck
  • 1,152
  • 10
  • 10