请原谅我的头衔,这是我最近有限的大脑最好能够出现的。
所以,我有一个字符串列表,类似于[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>
答案 0 :(得分:8)
假设#{bean.items}
返回List<String>
或String[]
,在JSF 1.x中,您可以将JSTL c:forEach
与varStatus
一起使用。它为您提供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>