内部foreach标记下的我的行正在重复外部forEach标记的所有值。 我的代码是
<c:forEach var="row" items="${ref.refarray_vac1(param.datepicker)}">
<c:forEach var="r" items="${ref.refernece(param.ref_logtime)}">
<tr bgcolor="darkgray ">
<td><c:out value="${r.logtime}"></c:out></td>
<td>
<c:choose><c:when test="${(r.beam_current) ne 0}">
<fmt:formatNumber value="${r.beam_current}" maxFractionDigits="2" minIntegerDigits="2" pattern="##.##" var="mm"></fmt:formatNumber>
${(mm)}
</c:when>
<c:otherwise>
${r.beam_current}</c:otherwise></c:choose></td>
<td>
<c:choose><c:when test="${(r.beam_energy) ne 0}">
<fmt:formatNumber value="${r.beam_energy}" maxFractionDigits="2" minIntegerDigits="2" pattern="##.##" var="mm"></fmt:formatNumber>
${(mm)}
</c:when>
<c:otherwise>
${r.beam_energy}</c:otherwise></c:choose></td>
<td>
<c:choose><c:when test="${(r.st2_vs2_bag1_rb) > 0.0}">
<fmt:formatNumber value="${r.st2_vs2_bag1_rb}" maxFractionDigits="2" minIntegerDigits="2" pattern="##.##E0" var="mm"></fmt:formatNumber>
${(mm)}
</c:when>
<c:otherwise>
<c:out value="OFF"></c:out> </c:otherwise></c:choose></td>
<tr bgcolor="cornsilk">
<td><c:out value="${row.logtime}"></c:out></td>
<td>
<c:choose><c:when test="${(row.beam_current) > 0.0}">
<fmt:formatNumber value="${row.beam_current}" maxFractionDigits="2" minIntegerDigits="2" pattern="##.##" var="mm"></fmt:formatNumber>
${(mm)}
</c:when>
<c:otherwise>
${row.beam_current}</c:otherwise></c:choose></td>
<td>
<c:choose><c:when test="${(row.beam_energy) > 0.0}">
<fmt:formatNumber value="${row.beam_energy}" maxFractionDigits="2" minIntegerDigits="2" pattern="##.##" var="mm"></fmt:formatNumber>
${(mm)}
</c:when>
<c:otherwise>
${row.beam_energy}</c:otherwise></c:choose></td>
<td>
<c:choose><c:when test="${(row.st2_vs2_bag1_rb) > 0.0}">
<fmt:formatNumber value="${row.st2_vs2_bag1_rb}" maxFractionDigits="2" minIntegerDigits="2" pattern="##.##E0" var="mm"></fmt:formatNumber>
${(mm)}
</c:when>
<c:otherwise>
<c:out value="OFF"></c:out></c:otherwise></c:choose></td>
</c:forEach>
</c:forEach>
我希望只有一个外部forEach循环的值只显示一个内部forEach循环的值。不应该重复内部forEach循环行。
修改-1 我显示的输出是以下形式 -
浅色显示的值(beam_current 10.01)为灰色的每个值重复。假设外部ForEach标记有22行,那么内部循环的每个值将重复22次。 / p>
我希望当beam_current为灰色10时,10.01应该只显示一次,然后应该显示内部forEach循环的另一个值,对应于灰色的beam_current 20.02,依此类推。 < / p>
答案 0 :(得分:1)
对于内循环,请使用end="0"
c:forEach
属性
它将迭代循环,仅针对内部forEach的第一项。
<c:set var="count" value="0" scope="page" />
<c:forEach var="row" items="${ref.refarray_vac1(param.datepicker)}">
<c:forEach var="r" items="${ref.refernece(param.ref_logtime)}" begin="${count}" end="${count}">
...
...
<c:set var="count" value="${count + 1}" scope="page" />
</c:forEach>
</c:forEach>
答案 1 :(得分:0)
听起来你想要使用相同的索引遍历每个集合,就像在这个伪代码中一样:
listA = [x, y, z]
listB = [a, b, c]
for (int i = 0; i < 3; i++):
print listA[i]
print listB[i]
为此,您需要删除其中一个forEach
循环,并使用剩余循环的索引来访问其他集合。例如:
<c:forEach var="listAValue" items="${listA}" varStatus="i">
<c:out value="${listA[i.count]}" />
<c:out value="${listB[i.count]}" />
我希望这会有所帮助,但如果不这样做,我建议你澄清一下你的问题。