??? 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> )
,不要使用+=,否则会报错!