您的c:if
中的条件只会出现一次:当您在第三个项目上。您可以使用EL中的mod
或%
运算符以三个一组的方式处理图像。注意varStatus.count属性 - 它是基于一而不是基于零的,所以你可以通过${images[imgCount.count]}
访问数组中的下一个图像。
<c:forEach items="${images}" var="image" varStatus="imgCount">
<c:if test="${(imgCount.count-1) mod 3 eq 0}">
<div class="${gridImage.displayposition}">
<img src="${imagePath}${image}/>
<img src="${imagePath}${images[imgCount.count]}/>
<img src="${imagePath}${images[imgCount.count+1]}/>
</div>
</c:if>
</c:forEach>
你也可以使用forEach标签的step
属性和消除对if
声明的必要性。在这里,你只能每隔三个创建一个div。但是,计数仍然会按照1,2,3 ...(而不是1,4,7 ...)的顺序继续进行,因此您需要将索引乘以三。
<c:forEach items="${images}" varStatus="imgCount" step="3">
<div class="${gridImage.displayposition}">
<img src="${imagePath}${images[3*(imgCount.count-1)]}"/>
<img src="${imagePath}${images[3*(imgCount.count-1) + 1]}"/>
<img src="${imagePath}${images[3*(imgCount.count-1) + 2]}"/>
</div>
</c:forEach>
来源
2014-09-24 21:01:07
Tap