<af:forEach>

forEach for each


forEachは、JSTL<c:forEach>タグの代替タグです。<c:forEach>は、JSF 1.2/JSP 2.1/JSTL 1.2の時点でJSFのコンポーネントまたはタグとともに使用できますが、遅延された評価とともに使用すると、varStatusはサポートされません。このタグはvarStatus(非サポートのcurrent以外)のサポートを強化するものです。(注意: このタグはFaceletsではサポートされていません。これはFaceletsではc:forEachが完全に機能するためです)。ただし、JSF 1.1でビルドされた古いADF af:forEachとは異なり、このタグはJSP 2.1ベースのタグ、JSFまたは非JSFで使用できます。またこのタグには、<c:forEach>、<af:forEach>にはない制限があり、現在、任意のjava.util.Collectionsはサポートされていません。イテレートは、java.util.Listsまたは配列でのみ可能です。

注意

forEachタグを使用するには、目的と知識が必要です。forEachタグは、JSFでのイテレーションに使用されませんが、かわりに複数コンポーネントの生成に使用されます。オブジェクトのコレクションでイテレートし、項目ごとにHTMLをレンダリングすることが目的の場合は、かわりに<af:iterator>を使用してください。

<af:iterator>ではなく<af:forEach>が必要とされる場合の例:

例:

<source>
            <af:selectOneListbox value="#{someValue}">
              <af:forEach var="item" items="#{model.listOfItems}">
                <af:selectItem value="#{item.value}" text="#{item.text}"/>
              </af:forEach>
            </af:selectOneListbox>

</source>

<source>
            <af:forEach varStatus="vs" begin="1" end="5">
              <af:outputText id="ot2" value="#{vs.index} #{vs.count} #{vs.begin}"/>
            </af:forEach>

</source>

属性

名前 ELのサポート 説明
begin int なし イテレーションを開始する索引。
end int なし イテレーションを終了する索引。
items Object ELのみ イテレートするコレクション。
step int なし 各イテレーションで増分する数値。
var String なし イテレート中に公開される変数の名前。
varStatus String なし イテレート中に公開されるループ・ステータスの名前。これを介して、index、count、begin、end、step、first、lastプロパティが利用可能になります。