<c:forEach/>
作用:遍历输出使用
<c:forEach begin="1" end="10" var="i">
<tr>
<td>第${i}行</td>
</tr>
</c:forEach>
- begin属性设置开始的索引
- end 属性设置结束的索引
- var 属性表示循环的变量(也是当前正在遍历到的数据)
1. 遍历 1 到 10,输出
示例代码:
<%--
1.遍历1到10,输出
begin属性设置开始的索引
end 属性设置结束的索引
var 属性表示循环的变量(也是当前正在遍历到的数据)
for (int i = 1; i < 10; i++)
--%>
<table>
<c:forEach begin="1" end="10" var="i">
<tr>
<td>第${i}行</td>
</tr>
</c:forEach>
</table>
<hr/>
结果:
2. 遍历 Object 数组
for (Object item: arr)
- items 表示遍历的数据源(遍历的集合
- var 表示当前遍历到的数据
示例代码:
<%--
2.遍历Object数组
for (Object item: arr)
items 表示遍历的数据源(遍历的集合
var 表示当前遍历到的数据
--%>
<%
String[] strings = {"123", "456", "789"};
pageContext.setAttribute("arr",strings);
%>
<c:forEach items="${pageScope.arr}" var="str">
${str}
</c:forEach>
<hr/>
结果:
3. 遍历 Map 集合
示例代码:
<%-- 3. 遍历 Map 集合--%>
<%
Map<String, Object> map = new HashMap<>();
map.put("key1","value1");
map.put("key2","value2");
map.put("key3","value3");
request.setAttribute("map",map);
// for ( Map.Entry<String,Object> entry : map.entrySet()) {
// }
%>
<c:forEach items="${requestScope.map}" var="entry">
${entry.key}->${entry.value}<br/>
</c:forEach>
<hr/>
结果:
4. 遍历 List 集合—list 中存放 Student 类,有属性:编号,用户名,密码,年龄,电话信息
Student 类:
private Integer id;
private String username;
private String password;
private Integer age;
private String phone;
示例代码:
<%--4.遍历List集合---list中存放 Student类,属性:编号,用户名,密码,年龄,电话信息--%>
<%
List<Student> list = new ArrayList<Student>();
for (int i = 1; i <= 10; i++) {
list.add(new Student(i,"name_" + i,"pwd_" + i,18 + i,"phone_" + i));
}
request.setAttribute("stuList",list);
%>
<table>
<tr>
<th>编号</th>
<th>用户名</th>
<th>用户密码</th>
<th>年龄</th>
<th>联系方式</th>
<th>操作</th>
</tr>
<c:forEach items="${stuList}" var="stu">
<tr>
<td>${stu.id}</td>
<td>${stu.username}</td>
<td>${stu.password}</td>
<td>${stu.age}</td>
<td>${stu.phone}</td>
<td>删除、修改</td>
</tr>
</c:forEach>
</table>
结果: