JSTL中c:forEach循环控制标签的用法

      <c:forEach>循环标签可以根据循环条件(通常和el表达式使用,el表达式我们有机会再说,在这里我就默认你会基本的el表达式了惊讶),遍历集合并从中取出我们想要的数据。如果在JSP页面中使用JAVA代码来遍历数据,会使页面非常混乱,不利于维护和分析。使用<c:forEach>循环标签可以是页面更加直观、简洁。

      <c:forEach>有以下的属性:

           items:指定要遍历的集合,相当于下面的str

String[] str={"1","2"};
for(String s:str)

           var:设置变量名,并从集合中取出一组数据。相当于上面的s

          begin:指定循环的起始位置,如果没有指定,则默认从第一个值开始遍历

          end:指定循环的终止位置,如果没有指定,则默认循环到最后一个

          step:用于指定循环的步长,例如step=“2”,则会隔一个循环。下面会有例子说明

          varStatus:用于指定循环的状态,有一下四个属性值,这个也比较常用,特别是index属性值,表示索引值。

变量类型描述
indexint位于原集合中的索引值(从0开始)
countint

位于现在子集合中的索引值(从1开始,如果没有begin、end和step,则和index一样)

firstboolean是否是现在子集合的第一位
lastboolean是否是现在子集合的最后一位

      我们现在来进行举例说明,通过以下四种用法组合使用来讲解这个用法:

      注意:在jsp页面前要加这个,引入jstl标签库<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

第一种:加入items和var

<%String[] str={"1","2","3","4","5","6","7"}; 
     request.setAttribute("str",str);
    %>
   <c:forEach items="${str}" var="s">
        <c:out value="${s}"></c:out><br><!-- 这个是输出的标签,相当于System.out.println(s); -->
   </c:forEach>
输出结果:


第二种:加入Items、var、begin和end

 <%String[] str={"1","2","3","4","5","6","7"}; 
     request.setAttribute("str",str);
    %>
   <c:forEach items="${str}" var="s" begin="1" end="5">
        <c:out value="${s}"></c:out><br><!-- 这个是输出的标签,相当于System.out.println(s); -->
   </c:forEach>

输出结果:

第三种:加入Items、var、begin、end和step

 <%String[] str={"1","2","3","4","5","6","7"}; 
     request.setAttribute("str",str);
    %>
   <c:forEach items="${str}" var="s" begin="1" end="5" step="2">
        <c:out value="${s}"></c:out><br><!-- 这个是输出的标签,相当于System.out.println(s); -->
   </c:forEach>

输出结果:

第四种:加入Items、var、begin、end、step和status

<%String[] str={"1","2","3","4","5","6","7"}; 
     request.setAttribute("str",str);
    %>
   <c:forEach items="${str}" var="s" begin="1" end="5" step="2" varStatus="status">
   <!-- &nbsp是换行符,在html中无论你敲多个空格键,最终在网页上只会显示一个空格,所以我们一般用这个作为空格 -->
        <c:out value="index属性:${status.index}"></c:out>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        <c:out value="count属性:${status.count}"></c:out>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        <c:out value="first属性:${status.first }"></c:out>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        <c:out value="last属性:${status.last }"></c:out><br>
   </c:forEach>

输出结果:

原来集合:"1","2","3","4","5","6","7"          现在子集合:"2","4","6"


阅读更多
个人分类: jstl
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭