<c:forEach>标签共有六个属性:
属性名 | 是否支持EL | 属性类型 | 用处 |
Vvar | false | String | 是否处理标签体内容 |
items | true | 数组,字符串,各种集合类型 | 迭代的集合对象 |
vaeStatus | false | String | 迭代的状态,获得迭代自身的消息 |
begin | true | int | 开始位置,默认第一个 |
end | true | int | 结束的位置,默认最后 |
step | true | int | 迭代步长 |
关于var的属性:
1、 没有items属性;
<c:forEach var=”item” begin=”1” end=”3”>
<c:out value=”${item}”/>
</c:forEach>
输出的结果为:1 2 3
2、 Items的值是:数组
<% Integer[] arr={1,2,3};
request.setAttribute("arr",arr); %>
<c:forEach items="${arr}" var="arr" >
<c:out value=”${arr}”/>
</c:forEach>
输出的结果为:1 2 3
3、 Items的值是:字符串
1)简单的字符串
<c:forEach items=”items” var=”item”>
<c:out value=”${item}”/>
</c:forEach>
输出的结果:items
2)以”,”间隔的字符串,例:song,li,xing
<c:forEach items=”song,li,xing” var=”item”>
<c:out value=”${item}”/>
</c:forEach>
输出的结果:song li xing
4、 Items的值是:集合
<%
List list=new ArrayList();
list.add("song");
list.add("lixing");
request.setAttribute("list",list);
%>
<c:forEach items="${list}" var="str">
<c:out value=”${str}”/>
</c:forEach>
输出结果为:song lixing
总结:迭代输出var储存的值时,应先考虑是否有items属性;没有items属性时,迭代输出的结果为数字(1,2..end);有items属性时,要看类型;1、数组、集合、以”,”间隔的字符串时,迭代输出数组、集合(或以“,“分开的字符串)的元素;2为简单的字符串时,一个元素输出;