不能使用JSF 2.0重复标记的varStatus的“end”属性

时间:2012-08-01 19:33:17

标签: jsf jsf-2

我正在使用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="&nbsp;" rendered="#{false == repeatStatus.last}" /> </ui:repeat> 的任何内容。 repeatStatus.endindex属性效果很好。

而不是last,我尝试使用repeatStatus.end,但这只适用于列表中的第一项。

如何在“项目x of y”文本中显示列表中的项目数?

1 个答案:

答案 0 :(得分:2)

end仅在您设置size属性时使用。

<ui:repeat ... size="#{fn:length(objectList)}">

或者,您也可以直接使用它。

Item #{repeatStatus.index + 1} of #{fn:length(objectList)}

顺便说一句,#{false == repeatStatus.last}中的布尔比较是丑陋的。它已经返回一个布尔值;如果你想否定它,而是使用#{not repeatStatus.last}