JSTL forEachループのカウントを使用したいのですが、コードが機能しないようです。
<c:forEach items="${loopableObject}" var="theObject" varStatus="theCount">
<div id="divIDNo${theCount}">
</div>
</c:forEach>
生産する
<div id="divIDNojavax.servlet.jsp.jstl.core.LoopTagSupport$1Status@5570e2" >
varStatus
によって設定される変数は、intではなく LoopTagStatus
オブジェクトです。つかいます:
<div id="divIDNo${theCount.index}">
明確にするために:
begin
属性を設定していない限り、${theCount.index}
は0
からカウントを開始します${theCount.count}
は1
でカウントを開始します次のいずれかを使用します。
JSTL c:forEach varStatusプロパティ
プロパティゲッターの説明
current getCurrent()現在の反復のアイテム(コレクションから)。
index getIndex()現在の反復のゼロベースのインデックス。
count getCount()現在の反復ラウンドの1ベースのカウント
last isLast()現在のラウンドが反復の最後のパスであるかどうかを示すフラグ
begin getBegin()begin属性の値
end getEnd()終了属性の値
step getStep()ステップ属性の値
これを試すことができます。同様の結果
<c:forEach items="${loopableObject}" var="theObject" varStatus="theCount">
<div id="divIDNo${theCount.count}"></div>
</c:forEach>
以下のコードのshowDetailItem
のIDを動的に生成するのに本当に役立ちました。
<af:forEach id="fe1" items="#{viewScope.bean.tranTypeList}" var="ttf" varStatus="ttfVs" >
<af:showDetailItem id ="divIDNo${ttfVs.count}" text="#{ttf.trandef}"......>
この行を実行すると、<af:outputText value="#{ttfVs}"/>
は以下を出力します:
{index = 3、count = 4、last = false、first = false、end = 8、step = 1、begin = 0}