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>