0

repeatJSF 2.0のタグを使用して、オブジェクトのリストをループし、それらのプロパティの一部を表示しています。varStatusの属性を使用して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、を使用してみobjectList.size()ましたが、リストの最初の項目でのみ機能しました。

「Itemxofy」テキストの一部としてリスト内のアイテムの数を表示するにはどうすればよいですか?

4

1 に答える 1

2

は、属性endを設定する場合にのみ使用されます。size

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

または、直接使用することもできます。

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

ちなみに、のブール比較#{false == repeatStatus.last}は醜いです。すでにブール値を返します。それを否定したい場合は、むしろを使用して#{not repeatStatus.last}ください。

于 2012-08-01T19:48:43.683 に答える