JavaWeb-JSTL迭代操作
迭代操作
<c:forEach>:可以对数组,collection,map进行遍历,begin(对于集合begin从0开始算),end,step
<c:forEach>为循环控制,它可以将集合(collection)中的成员循序浏览一遍。运作方式为当条件符合时,就会持续重复执行<c: forEach>的本体内容
属性:
| 名称 | 说明 | EL | 类型 | 必须 | 默认值 |
| var | 用来存放现在指到的成员 | N | String | 否 | 无 |
| items | 被迭代的集合对象 | Y |
Arrays Collection Iterator Map Enumeration String |
否 | 无 |
| varStatus | 用来存放现在指到的相关成员信息 | N | String | 否 | 无 |
| begin | 开始的位置 | Y | int | 否 | 0 |
| end | 结束的位置 | Y | int | 否 | 最后一个成员 |
| step | 每次迭代的间隔数 | Y | int | 否 | 1 |
varStatus的属性:
| 属性 | 类型 | 意义 |
| index | number | 现在指到成员的索引 |
| count | number | 总共指到成员的总数 |
| first | boolean | 现在指到的成员是否为第一个成员 |
| last | boolean | 现在指到的成员是否为最后一个成员 |
<!---collection 跟数组遍历相同->
<%
List<Customer> custs = new ArrayList<Customer>();
custs.add(new Customer("1","AAA"));
custs.add(new Customer("2","BBB"));
custs.add(new Customer("3","CCC"));
custs.add(new Customer("4","DDD"));
custs.add(new Customer("5","EEE"));
custs.add(new Customer("6","FFF"));
request.setAttribute("custs",custs);
%>
<br><br>
<c:forEach items="${requestScope.custs}" begin="1" step="2" end="5" var="cust">
${cust.id} -- ${cust.name} <br>
</c:forEach>

<%
List<Customer> custs = new ArrayList<Customer>();
custs.add(new Customer("1","AAA"));
custs.add(new Customer("2","BBB"));
custs.add(new Customer("3","CCC"));
custs.add(new Customer("4","DDD"));
custs.add(new Customer("5","EEE"));
custs.add(new Customer("6","FFF"));
request.setAttribute("custs",custs);
%>
<br><br>
<c:forEach items="${requestScope.custs}" varStatus="status" var="cust">
${status.index} : ${status.count} : ${status.first} : ${status.last} : ${cust.id} : ${cust.name} <br>
</c:forEach>

<!--Map集合遍历-->
<%
Map<String,Customer> map = new HashMap<String, Customer>();
map.put("a",new Customer("1","AAA"));
map.put("b",new Customer("2","BBB"));
map.put("c",new Customer("3","CCC"));
map.put("e",new Customer("4","DDD"));
map.put("f",new Customer("5","EEE"));
map.put("g",new Customer("6","FFF"));
request.setAttribute("map",map);
%>
<br><br>
<c:forEach items="${requestScope.custs}" varStatus="status" var="cust">
${cust.key} - ${cust.value.id} - ${cust.value.name} <br>
</c:forEach>
<!--数组遍历:-->
<%
String [] names = new String[]{"A","B","C"};
request.setAttribute("names",names);
%>
<br><br>
<c:forEach var="name" items="${names}">${name}--</c:forEach>
<c: forTokens>:处理字符串,类似于String的split()方法
<c:forTokens>用来浏览一字符串中所有的成员,其成员是由定义符号(delimiters)所分隔的。
去掉,号
<c:set value="a,b,c,d,e;f:g" var="test" scope="request"></c:set>
<c:forTokens items="${requestScope.test}" delims="," var="s">
${s}<br>
</c:forTokens>


浙公网安备 33010602011771号