I get it. Thanks. 

-----Original Message-----
From: Thiago H. de Paula Figueiredo [mailto:[EMAIL PROTECTED] 
Sent: 06 October 2008 15:28
To: Tapestry users
Subject: Re: T5: equivelent of c:set ?

Em Mon, 06 Oct 2008 11:01:34 -0300, Russell Brown
<[EMAIL PROTECTED]>  
escreveu:

> In jsp
>
> <c:forEach items="${someList}" var="myItem"
>                  varStatus="counter">
>
> <c:if test="${!empty someVar}">
>       <somemarkup attr="$someVar}"/>
> </c:if>
> <someothermarkup/>
>
> <c:set var="someVar" value="${myItem.myProperty}"/>
>
> </c:forEach>

You don't need to create a component from that, just stop thinking JSP  
when coding Tapestry. :)
In Tapestry, all the logic is implemented in pages classes, with no
logic  
in templates. And this is a very good thing, as the logic is easily
tested  
when implemented in classes. ;)

Not tested, but hopefully it will give you an idea on how to do that:

YourClass.java:

private ItemType item;

@Property /* so we don't need to provide the getter and setter, as they

don't have any logic */
private ItemType lastItem;

public ItemType getItem() {
        return item;
}

public void ItemType setItem(ItemType item) {
        lastItem = this.item;
        this.item = item;
}

public List getList() {
        return ...; // list to be iterated
}

public boolean isNotEmpty() {
        return lastItem != null; // or any other logic
}

YourTemplate.tml:

<t:loop source="list" value="item">
        <t:if test="notEmpty">
                <somemarkup attr="${lastItem.myProperty}"/>     
        </t:if>
        <someothermarkup/>
</t:loop>

If you don't get it, tell us. :)

-- 
Thiago H. de Paula Figueiredo
Independent Java consultant, developer, and instructor
Consultor, desenvolvedor e instrutor em Java
http://www.arsmachina.com.br/thiago

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to