This almost works. Using the way you suggested as is oddly emits a comma
only after the last element. Unfortunately I can't, at least not that I
know of, express a "less than" clause like so:
<t:if test="var:index < ${post.tags.size()}">,</t:if>
T5 doesnt allow '<' here. As far as creating my own goes, I'm wondering
if you've looked at the source of the core Loop component. If not, take
my word for it, it's scary. If I could just subclass it and override a
render method to honor a new parameter, it would probably be easy. Alas
the T5 black magic prohibits this. At this point I see 2 options:
1) Do as you suggested and create my own loop, which will take a good
bit of focused time to first understand why the internal loop does
things the way it does.
2) Create a component that loops through a list and outputs a delimited
list of pagelinks. The nasty part of this is that's its done in rigid
java code - but it works.
Has no one else done this yet?
Robert Zeigler wrote:
What you /might/ be able to do (to avoid the java code), is to use var
here... I haven't played with the var prefix yet, so this is a "try
and see" idea. :) But. Something like:
<t:loop source="strings" value="var:string" index="var:index">
<t:if test="var:index">,</t:if>
<a href="#" t:type="pagelink" page="nada"
context="var:string">${var:string}</a>
</t:loop>
If that works, you could even write your own DelimittedLoop component
and not have to duplicate the logic elsewhere.
Robert
On Jan 12, 2008, at 1/125:06 PM , Chris Lewis wrote:
That would work of course, but I'd like to do something like this:
<t:loop source="strings" value="var:string" index="prop:index"
delimit=", ">
<a href="#" t:type="pagelink" page="nada"
context="var:string">${var:string}</a>
</t:loop>
And then each element would be separated by my delimiter without any
extra java code.
Robert Zeigler wrote:
How about testing the value of index?
Something like:
.java:
private int index;
public int getIndex() { return index; }
public void setIndex(int i) index = i; }
public boolean isFirst() { return index==0; }
.tml:
<t:loop source="strings" value="var:string" index="prop:index">
<t:if test="prop:first" negate="true">
,
</t:if>
<a href="#" t:type="pagelink" page="nada"
context="var:string">${var:string}</a>
</t:loop>
Robert
On Jan 12, 2008, at 1/124:41 PM , Chris Lewis wrote:
Sorry, I missed the "check if first" part. How can you do such a
check in Loop? The "If" can test, but what can you test in a Loop?
nothing that I know of will tell you where in the iteration you are.
chris
Davor Hrg wrote:
just reverse where you write the ","
instead of checking if last and putting comma behind
check if first and put comma in front
Davor Hrg
On Jan 12, 2008 11:04 PM, Chris Lewis <[EMAIL PROTECTED]>
wrote:
So this ticket has been implemented in svn:
https://issues.apache.org/jira/browse/TAPESTRY-2028
And now I need whitespace... so how can I get it back? Is there
or isn't
there a way to disable this? Im using loop to output links
(pagelinks),
and i have whitespace behind in the body so there is separation.
Unfortunately, it's getting stripped. Is there a workaround?
On a related note, is there a way to know if im on the last
iteration of
the loop, so i could for example, follow all but the last with a
","?
This may be outside the scope of loop as currently implemented,
but i
can see it being useful.
chris
---------------------------------------------------------------------
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]
---------------------------------------------------------------------
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]
---------------------------------------------------------------------
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]