2010-10-25 125 views
1

請原諒我的標題,這是我最近有限的大腦可能出現在最後。JSF:基於迭代索引的邏輯

所以,我有一個字符串列表,像[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> 

回答

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> 
+0

你對沒有工作的開箱,我的解決方案,但它引導我到這個論壇的帖子http://seamframework.org/Community/SolutionForUirepeatWithVarStatusAndNewParametersFromAndTo其中有我的答案多。 謝謝.. – bungrudi 2010-10-26 06:15:20

+0

它只適用於JSF 2.x.您似乎正在使用JSF 1.x.第一種解決方案對您更爲適用。 – BalusC 2010-10-26 10:37:49