日期:2014-05-16  浏览次数:20403 次

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,在使用forEach中重复定义一次,使用EL表达式使值相加,不要使用+=,否则会报错!