JSF:基于迭代索引的逻辑

时间:2010-10-25 13:28:42

标签: jsf richfaces facelets icefaces

请原谅我的头衔,这是我最近有限的大脑最好能够出现的。

所以,我有一个字符串列表,类似于[abc,def,ghi]。

问题:在JSF中,我如何迭代列表并创建一个看起来像这个“abc,def,ghi”的字符串(注意逗号)?

对于那些急于告诉我最好使用Java方法来连接字符串的人,请听一下:列表中的每个成员都应该作为单独的commandLink呈现。

如果简单的JSF看起来像:

<h:commandLink>abc</h:commandLink>, <h:commandLink>def</h:commandLink>, <h:commandLink>ghi</h:commandLink>

1 个答案:

答案 0 :(得分:8)

假设#{bean.items}返回List<String>String[],在JSF 1.x中,您可以将JSTL c:forEachvarStatus一起使用。它为您提供LoopTagStatus的句柄,其isLast()方法。

<c:forEach items="#{bean.items}" var="item" varStatus="loop">
    <h:commandLink value="#{item}" /><c:if test="#{!loop.last}">, </c:if>
</c:forEach>

在JSF 2.x附带的Facelets中,ui:repeat提供了相同的功能。

<ui:repeat value="#{bean.items}" var="item" varStatus="loop">
    <h:commandLink value="#{item}" />#{!loop.last ? ', ' : ''}
</ui:repeat>