Given multiple definitions in the tiles.xml file or tiles*.xml files that may be scattered throughout the classpath, how does tiles.xml decide which definition(s) to use?

For example, given the following view name:

        @RequestMapping(value = "/login", method = RequestMethod.GET)
        public String login(ModelMap model) {
                return "secure/login";
        }


and the following tiles*.xml files:


tiles.xml
<tiles-definitions>

<definition name="REGEXP:([^.]+)" 
template="/WEB-INF/views/tiles/layouts/default.jsp">
    <put-attribute name="meta" 
value="/WEB-INF/views/tiles/{options[defaultPaths]}/meta.jsp"/>
    <put-attribute name="head" 
value="/WEB-INF/views/tiles/{options[defaultPaths]}/head.jsp"/>
    <put-attribute name="header" 
value="/WEB-INF/views/tiles/{options[defaultPaths]}/header.jsp"/>
    <put-attribute name="menu" 
value="/WEB-INF/views/tiles/{options[defaultPaths]}/menu.jsp"/>
    <put-attribute name="body" 
value="/WEB-INF/views/tiles/{options[defaultPaths]}/body.jsp"/>
    <put-attribute name="footer" 
value="/WEB-INF/views/tiles/{options[defaultPaths]}/footer.jsp"/>

        <put-list-attribute name="defaultPaths" cascade="true" >
                <add-attribute value="{1}"/>
                <add-attribute value="common"/>
        </put-list-attribute>
</definition>


<definition name="REGEXP:secure/(.*)" 
template="/WEB-INF/views/tiles/layouts/secure.jsp">
    <put-attribute name="body" 
value="/WEB-INF/views/tiles/secure/{1}/body.jsp"/>
</definition>

</tiles-definitions>


tiles-login.xml:


<tiles-definitions>
<definition name="secure/login" 
template="/WEB-INF/views/tiles/secure/layout/secure.jsp">
    <put-attribute name="body" 
value="/WEB-INF/views/tiles/secure/login/body.jsp"/>
    <put-attribute name="captcha" 
value="/WEB-INF/views/tiles/secure/login/captcha.jsp"/>
</definition>

</tiles-definitions>



How does tiles know which definition to use?  Is there a precedence order?  Is 
it based on the order in which the tile*.xml files are registered/loaded?

Thanks,

Eric


Reply via email to