【发布时间】:2011-12-06 19:06:19
【问题描述】:
我正在使用 ui:repeat 标记,并且设置了 varstatus="current"。我尝试使用以下命令显示行索引,但没有显示任何内容。
<h:outputText value="#{current.index}"/>
我想显示行索引。
【问题讨论】:
我正在使用 ui:repeat 标记,并且设置了 varstatus="current"。我尝试使用以下命令显示行索引,但没有显示任何内容。
<h:outputText value="#{current.index}"/>
我想显示行索引。
【问题讨论】:
它是在Facelets 2.x 中引入的。鉴于它不起作用,您使用的是Facelets 1.x。
Facelets 2.x 不是独立可用的。它嵌入在 JSF 2.x 中。如果可以,请升级到 JSF 2.x。如果不能,那么您要么将模型包装在包含索引的自定义模型中,要么在视图标记允许的情况下获取 <c:forEach>(这是视图构建时间标签,而不是视图渲染时间标签),或者抓取Tomahawk's <t:dataList>,而不是为此目的具有rowIndexVar属性。
更新 根据 cmets,您原来使用的是 RichFaces。在这种情况下,您还可以使用<rich:dataList> 或<a4j:repeat>,它们同时提供rowKeyVar 属性:
<a4j:repeat value="#{bean.items}" var="item" rowKeyVar="index">
<p>#{index} #{item}</p>
</a4j:repeat>
【讨论】:
rowKeyVar="index" 并使用#{index}。 <a4j:repeat> 也支持此属性,可能是<ui:repeat> 的更好替代品。