Having struggled for a couple of days I finally gave up and decided to ask for help.
I use Seam with Facelets. What I want is to show a list of entities in a table cell i.e a single cell may contain a comma-separted list.
Let's say I have two entity types: Item and Subitem. An instance of type Item may have a number of Subitems. In my case the relation between these two entity types is many-to-many.
So if I have Item1 with three subitems: Subitem1, Subitem2 and Subitem3, I want to see something like this:
Please note that I don't want a comma after the last subitem in a cell (Subitem3 in this case). Nothing special, an obvious requierment, isn't it?
The first thing I tried was ui:repeat:
Everything's fine except for the fact that there is a nasty comma after the last subitem. This made me try c:forEach tag:
Unfortunately this code won't work! It just leaves my favorite column empty. It seams that c:forEach do not see variable item. I then tried to find a way to add the conditional logic to ui:repeat, but haven't managed to find anything like c:forEach's 'varStatus'.
Any ideas? Thank you all in advance!
K Bbb
Greenhorn
Joined: Sep 28, 2007
Posts: 4
posted
0
you can use <ui:fragment rendered="#{conditional}">
also you could render the 1st item outside the loop, then set the start index to 1 on the loop and then in the loop render the comma first, then the loop item
finaly you can move the code into the java side and don't loop at all..
K Bbb
Greenhorn
Joined: Sep 28, 2007
Posts: 4
posted
0
also.. most of the time it doesn't work to mix c: tags with h: tags, c: tags are compile time, h: tags are render time. you can sometimes put an h: tag inside a c: tag, but not the other way.
Thank you, K Bbb. I like the idea of conditional rendering. That's exactly what I was looking for.
However, it just seems strange to me that there is nothing like c:forEach among built-in facelet tags. I wish ui:repeat had same functionality as c:forEach, but it unfortunately doesn't.
I agree. Here's the link: http://ej-technologies/jprofiler - if it wasn't for jprofiler, we would need to
run our stuff on 16 servers instead of 3.
subject: Iterating tags in Seam (ui:repeat and c:forEach)