Hi, Keeping things short: the problem happens because you shouldn't be using tiles:insertAttribute for this purpose. Use tiles:insertTemplate instead.
The difference is simple: tiles:insertAttribute is in charge of retrieving the value of an attribute (given its name or the Attribute object). Once that value is known, tiles:insertAttribute internally calls insertTemplate for rendering. In your situation, tiles:useAttribute is retrieving the value of the attribute and assigning it to a JSP "variable". What's left is only rendering it, with insertTemplate. Hope this helps, Nick. PS: for further details about insertTemplate syntax, please see http://tiles.apache.org/2.2/framework/tiles-jsp/tlddoc/index.html On 12-12-23 07:40 AM, Abhishek Vishwakarma wrote: [...] > <definition name=*"contact"* extends=*"base.definition"*> > > <put-attribute name=*"title"* value=*"Contact Manager"* /> > > <put-list-attribute name=*"body"*> > > <add-attribute value=*"/WEB-INF/jsp/contact.jsp"*></ > add-attribute> > > </put-list-attribute> > > </definition> [...] > <tiles:useAttribute classname=*"java.util.List"* id=*"bodyList"* name=* > "body"*/> [...] > <c:forEach var=*"bodyItems"* items="${bodyList}" > > > > > <td width=*"350"*><tiles:insertAttribute value=" > ${bodyItems}"></tiles:insertAttribute> </td> > > </c:forEach> [...] > When I say *"*><tiles:insertAttribute value="${bodyItems}"></ > tiles:insertAttribute> </td> here it is throwing exception and I am using > below jars