我正在使用JSF 2.0的repeat
标记来遍历对象列表并显示它们的一些属性。我想使用varStatus
的{{1}}属性,以便我可以访问循环索引,最后一个列表项的编号,并告诉是否已到达列表的末尾(因此间隔符号)将不会显示)。我认为这样可行:
repeat
但是,它永远不会显示<ui:repeat var="anObject" varStatus="repeatStatus" value="#{objectList}">
<h:panelGroup>
<h:outputText value="Item #{repeatStatus.index + 1} of #{repeatStatus.end}" />
<h:outputText value="#{anObject.text}" />
</h:panelGroup>
<h:outputText value=" " rendered="#{false == repeatStatus.last}" />
</ui:repeat>
的任何内容。 repeatStatus.end
和index
属性效果很好。
而不是last
,我尝试使用repeatStatus.end
,但这只适用于列表中的第一项。
如何在“项目x of y”文本中显示列表中的项目数?
答案 0 :(得分:2)
end
仅在您设置size
属性时使用。
<ui:repeat ... size="#{fn:length(objectList)}">
或者,您也可以直接使用它。
Item #{repeatStatus.index + 1} of #{fn:length(objectList)}
顺便说一句,#{false == repeatStatus.last}
中的布尔比较是丑陋的。它已经返回一个布尔值;如果你想否定它,而是使用#{not repeatStatus.last}
。