My understanding is that if I specify body content for the 
<tiles:putAttribute>, that content will be evaluated and the resulting string 
is what will be available for insertion into my template using 
<tiles:insertAttribute>.  For example, I have myTemplate.jsp which includes 
this:

   <table>
      <c:forEach begin="1" end="5" var="current">
         <tr>
            <tiles:insertAttribute name="rowContent"/>
         </tr>
      </c:forEach>
   </table>

and myPage.jsp which includes this:

   <tiles:insertTemplate template="/tiles/myTemplate.jsp">
      <tiles:putAttribute name="rowContent">
         <td><c:out value="${current}"/></td>
      </tiles:putAttribute>
   </tiles:insertTemplate>

Because ${current} is undefined when the body content is evaluated, this 
produces a table with 5 rows, each of which contains a single cell with nothing 
in it.  Is this an unavoidable consequence of the way Tiles works, or is there 
a way to make Tiles treat the content of the putAttribute tag as a literal 
string to be inserted into the template and then evaluated along with the rest 
of the template page?
 
Tim Kannenberg
Celera Systems LLC
 

Reply via email to