JSTL标签对于Map集合的遍历,以及值得累加问题
JSTL标签对于Map集合的遍历:
<c:forEach items="${shoppingCart}" var="map">
<tr>
<td>${map.key}</td>
<td>${map.value.number }</td>
<td>${map.value.price }</td>
</tr>
</c:forEach>
shoppingCart表示JSP页面所获取的HashMap对象,map表示在JSP页面中指向该集合对象。
map.key是取HashMap的键值;
map.value取的是HashMap中的value值,在此处表示的是一个JavaBean对象;
map.value.number/price表示的是取该JavaBean的字段所对应的值。
JSTL标签对于集合的值得累加:
<tr>
<c:set var="totalPrice" value="0"></c:set>
<td colspan="3" align="right">
<c:forEach items="${shoppingCart}" var="map">
<c:set var="price" value="${map.value.price}"></c:set>
<c:set var="totalPrice" value="${totalPrice+price}"></c:set>
</c:forEach>
合计:${totalPrice}
</td>
</tr>
首先定义了一个变量totalPrice,
(<c:set var="totalPrice" value="0"></c:set> )
在使用forEach中重复定义一次,使用EL表达式使值相加
(<c:set var="totalPrice" value="${totalPrice+price}"></c:set> )
,不要使用+=,否则会报错!