foreach嵌套循环

时间:2022-12-21 15:56:57

最近几天被这个嵌套搞晕了,还好经过几天的努力终于解决了,特记录下,因为要传两个List集合到jsp页面,还都是在一起输出,发现不能把两个集合放在一个foreach,所以就写了两个foreach来接受,可是问题来了,因为是嵌套,里层foreach的循环次数会被外层的循环次数影响,里层的foreach循环次数总是里层乘以外层的总和,我只想两个foreach循环次数是一样,这样取出的值,才能凑一起,想过在后台把两个集合放一起在传,但是因为是两个不同类型的集合,要么存不进去,要么存进去取出来就有问题了,又想用if语句判断里层循环次数,只要里层的循环次数和外层的循环次数一样就停止,然后想多了,外层循环一次,里层就要循环外层的总次数,最后终于想到动态的输出里层数据,用foreach里的begin和end属性,begin设置开始取值的下标,end设置结束取值的下标,意思就是这个foreach每次循环只取begin到end下标开始的值,最后在外层的foreach加一个varStatus=”status”属性获取外层的循环次数,将里层的begin和end的值改成外层的循环次数begin=”status.index”、end=”status.index”,这样每次循环里层只取一个值,最终把所有值都取出。这个问题我以为我一直都解决不了呢,困扰很久了,找了很久都没找到答案,还好仔仔细细的看了foreach的所有属性和用法,终于解决了,虽然问题不难,但作为菜鸟道路上的一道坎,还是要记录哈 。

<c:forEach var="x" items="${information }" varStatus="ix">
<c:forEach var="a" begin="${ix.index }" end="${ix.index}" varStatus="ia" items="${information_11 }">
<div class="div">
<div class="div1">
<a href="information?src=${x.uid }" target="_blank"><img src="${a}" width="200px" height="200px"></a>
</div>
<div class="span"><a>¥${x.price_2 }</a></div>
<div><a style="color:#383838;">${x.name }</a></div>
<div class="div2">
<a style="color:gray;">总销量:${x.volume }</a>
<a style="float:right; margin-right:20px; color:#3366FF;">| 评价:${x.comment }</a>
</div>
</div>
</c:forEach>
</c:forEach>