<title>jstl标签---c:forEach(重点)</title>
</head>
<body>
<%--
我们在开发中可以使用c:forEach去对容器进行遍历.
--%>
<h1>1.基本应用</h1>
<c:forEach begin="1" end="10" step="1" var="num">
${num}<br>
</c:forEach>
<hr>
<h1>2.基本应用</h1>
<%--
输出1-10之间的数,要求奇数项为红色,偶数项为绿色
<c:forEach begin="1" end="10" step="1" var="num">
<c:if test="${num%2!=0}">
<font color='red'>${num}</font>
</c:if>
<c:if test="${num%2==0}">
<font color='green'>${num}</font>
</c:if>
</c:forEach>
--%>
<c:forEach begin="1" end="20" step="2" var="num" varStatus="vs">
<c:if test="${vs.count %2!=0}">
<font color='red'>${num}</font>
</c:if>
<c:if test="${vs.count %2==0}">
<font color='green'>${num}</font>
</c:if>
</c:forEach>
<%--
在foreach中有一个varStatus属性,它的值的count属性可以获取当前的序号
--%>
<hr>
<hr>
<h1>c:foreach的高级应用--遍历数组,Collection,Map集合</h1>
<h3>遍历数组</h3>
<%
int[] arr = { 1, 2, 3, 4, 5 };
request.setAttribute("arr", arr);
%>
<c:forEach items="${arr}" var="n">
${n}<br>
</c:forEach>
<hr>
<h3>遍历List集合</h3>
<%
List<String> list = new ArrayList<String>();
list.add("a");
list.add("b");
list.add("c");
request.setAttribute("list", list);
%>
<c:forEach items="${list}" var="l">
${l }<br>
</c:forEach>
<hr>
<h3>遍历Map集合</h3>
<%
Map<Integer,String> map=new HashMap<Integer,String>();
map.put(1, "aaa");
map.put(2, "bbb");
map.put(3, "ccc");
request.setAttribute("map", map);
%>
<c:forEach items="${map}" var="entry">
${entry.key}-----${entry.value}<br>
</c:forEach>
<hr>
<hr>
<hr>
c:foreach练习<br>
<%--
显示商品信息,并计算商品的总价
--%>
<%
List<Product> products=new ArrayList<Product>();
Product p1=new Product();
p1.setName("电冰箱");
p1.setCount(10);
p1.setPrice(1);
products.add(p1);
Product p2=new Product();
p2.setName("电视机");
p2.setCount(10);
p2.setPrice(2);
products.add(p2);
Product p3=new Product();
p3.setName("电脑");
p3.setCount(10);
p3.setPrice(3);
products.add(p3);
request.setAttribute("products", products);
%>
<table >
<tr>
<td>商品名称</td>
<td>商品数量</td>
<td>商品价格</td>
</tr>
<c:forEach items="${products}" var="product">
<tr>
<td>${product.name}</td>
<td>${product.count}</td>
<td>${product.price}</td>
</tr>
<c:set var="money" value="${money+product.count*product.price }"/>
</c:forEach>
<tr>
<td colspan="3" align="right">商品总价:${money }元</td>
</tr>
</table>
</body>
</html>