tiles-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Antonio Petrelli <antonio.petre...@gmail.com>
Subject Re: How to include a SimpleMenuItem bean in tiles:addAttribute in struts2
Date Sun, 01 Feb 2009 22:37:20 GMT
2009/2/1 Ignacio de Córdoba <icordoba@skios.es>:
> You mean a preparer for my path/breadcrums Tile? The preparer whon't have
> information about path as everything related to breadcrums/path depends on
> the Tiles configuration. I so don't figure out what to "prepare" in the
> preparer.

I meant that the code that you posted before, that you can find below,
can easily be written using a preparer for the definition.

The code was:

<tiles:insertDefinition name="breadcrumsTile">
       <tiles:putListAttribute name="breadcrums">
               <jsp:useBean id="item"
class="org.apache.tiles.beans.SimpleMenuItem"
scope="page"/>
                       <c:set var='folderName'><s:property
value="#folderName"/></c:set>
                       <jsp:setProperty  name="item" property="link"
value="Actions_folder.action?folderName=${folderName}"/>
                       <jsp:setProperty name="item" property="value"
value="${folderName}"/>
                       <tiles:addAttribute value="${item}"/>
       </tiles:putListAttribute>
</tiles:insertDefinition>

You can change it into:

<tiles:insertDefinition name="breadcrumsTile" preparer="my.package.MyPreparer">
</tiles:insertDefinition>

And create the "MyPreparer" class that uses the AttributeContext to
fill the list attribute:

ListAttribute listAttribute = new ListAttribute();
List<Attribute> attributes= new ArrayList<Attribute>();
// Code to fill the list
listAttribute.setValue(attributes);
attributeContext.putAttribute("breadcrums", listAttribute);

HTH
Antonio

Mime
View raw message