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


Reply via email to