tiles-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Adam Hardy <ahardy.str...@cyberspaceroad.com>
Subject context of parameters
Date Mon, 03 Sep 2007 17:43:52 GMT
I have created a layout JSP to use as a template for an abstract layout 
definition. I extend it with my concrete definition, for example (simplified):

<definition name="layout.tile" template="layout.jsp">
   <put-attribute name="headerTile" type="template" value="header.jsp" />
   <put-attribute name="menuTile" type="template" value="menu.jsp" />
<definition name="categoryList.tile" extends="layout.tile">
   <put-attribute name="bodyContentTile" value="categoryList.jsp" />
   <put-attribute name="title" value="category.list.pageHeader" />
   <put-attribute name="subMenuTile" value="submenu.jsp" />

The "title" attribute varies between concrete definitions. Unless I declare the 
"title" attribute again in the layout template, the header tile and header.jsp 
cannot see it, like this:

<tiles:importAttribute />
   <div id="container">
     <div id="header">
       <tiles:insertAttribute name="headerTile">
         <tiles:putAttribute name="title" value="${title}" />
     <div id="content">
       <tiles:insertAttribute name="bodyContentTile"/>
     <div id="subMenu">
       <div class="subMenu">
         <tiles:insertAttribute name="subMenuTile"/>

Is this the right way to do it or is there a more elegant way?

I know that once this prototype goes into development, there will be many more 
attributes defined in the concrete definition but used in other tile templates. 
I would be glad to find out whether there is an automatic way of putting these 
attributes into the context of the pages where I need them?

I have looked hard at the possibility of 'nesting' the definitions, but that 
doesn't seem to be the solution, or at least it would be no more elegant than 
the above.


View raw message