关于使用<c:forEach >遍历map出现的一些问题
今天在开发过程中需要使用到JSP c标签库中的<c:forEach >遍历Map
发现继续当作list是不行的,得这样用:
<c:forEach items="${Map}" var="item" varStatus="status"> <a style="color:blue;" href="javascript:void(0)" class="btn-actor-detail" data-name="${item.value.name}" data-value="${item.value.oid}">${item.value.name}</a>:${item.value.number}, </c:forEach>
只需要将map里的元素 使用item.value.XX 就可以取到了
另外循环里需要进行判断,但是c标签库里没有 <c:if><c:else> ,可以用<c:choose>来取代结构:
<c:choose> <c:when test=""> 如果 </c:when> <c:otherwise> 否则 </c:otherwise> </c:choose>
另外判断里需要拿到最后一个索引,然后将“,”去掉,可以使用另一个属性 varStatus
看一下 c:forEach varStatus属性
current 当前这次迭代的(集合中的)项 index 当前这次迭代从 0 开始的迭代索引 count 当前这次迭代从 1 开始的迭代计数 first 用来表明当前这轮迭代是否为第一次迭代的标志 last 用来表明当前这轮迭代是否为最后一次迭代的标志 begin 属性值 end 属性值 step 属性值
所以在这里,判断条件里使用 last属性就可以了
<c:forEach items="${CpActorThree1}" var="item" varStatus="status"> <c:choose> <c:when test="${status.last==true}"> <a style="color:blue;" href="javascript:void(0)" class="btn-actor-detail" data-name="${item.value.name}" data-value="${item.value.oid}">${item.value.name}</a>:${item.value.number} </c:when> <c:otherwise> <a style="color:blue;" href="javascript:void(0)" class="btn-actor-detail" data-name="${item.value.name}" data-value="${item.value.oid}">${item.value.name}</a>:${item.value.number}, </c:otherwise> </c:choose> </c:forEach>