随笔 - 20  文章 - 57  trackbacks - 0
<2011年1月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
303112345

常用链接

留言簿(2)

随笔分类

随笔档案

文章分类

文章档案

51CTO

搜索

  •  

最新评论

阅读排行榜

评论排行榜

ForEach小结       

    <c:forEach>标签具有以下一些属性: 


            var:迭代参数的名称。在迭代体中可以使用的变量的名称,用来表示每一个迭代变量。类型为String。 

            items:要进行迭代的集合。对于它所支持的类型将在下面进行讲解。 

            varStatus:迭代变量的名称,用来表示迭代的状态,可以访问到迭代自身的信息。 

            begin:如果指定了items,那么迭代就从items[begin]开始进行迭代;如果没有指定items,那么就从begin开始迭代。它的类型为整数。 

            end:如果指定了items,那么就在items[end]结束迭代;如果没有指定items,那么就在end结束迭代。它的类型也为整数。 

            step:迭代的步长。 

          <c:forEach>标签的items属性支持Java平台所提供的所有标准集合类型。此外,您可以使用该操作来迭代数组(包括基本类型数组)中的元素。它所支持的集合类型以及迭代的元素如下所示: 

            java.util.Collection:调用iterator()来获得的元素。 
 
            java.util.Map:通过java.util.Map.Entry所获得的实例。 

            java.util.Iterator:迭代器元素。 

            java.util.Enumeration:枚举元素。 

            Object实例数组:数组元素。 

            基本类型值数组:经过包装的数组元素。 

            用逗号定界的String:分割后的子字符串。 

            javax.servlet.jsp.jstl.sql.ResultSQL查询所获得的行。 

          不论是对整数还是对集合进行迭代, <c:forEach>varStatus属性所起的作用相同。和var属性一样,varStatus用于创建限定了作用域的变量(改变量只在当前标签体内起作用)。不过,由varStatus属性命名的变量并不存储当前索引值或当前元素,而是赋予javax.servlet.jsp.jstl.core.LoopTagStatus类的实例。该类包含了一系列的特性,它们描述了迭代的当前状态,如下这些属性的含义如下所示: 

            current:当前这次迭代的(集合中的)项。 

            index:当前这次迭代从0开始的迭代索引。 

            count:当前这次迭代从1开始的迭代计数。 

            first:用来表明当前这轮迭代是否为第一次迭代,该属性为boolean类型。 

            last:用来表明当前这轮迭代是否为最后一次迭代,该属性为boolean类型。 

            beginbegin属性的值。 

            endend属性的值 

            stepstep属性的值 



JSTL 之 ForEach 循环

<%@ page contentType="text/html; charset=GBK" %> 
<%@ page import="java.util.*" %> 

<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %> 
<html> 
  <head> 
    <title>JSTL测试1--c:forEach循环</title> 
  </head> 

  <body> 
一、整数 


    <c:forEach var="i" begin="1" end="10" step="1"> 
      <c:out value="${i}" />
    </c:forEach><p> 


二、计算x的平方 
  

 <table>  
   <tr><th>Value</th>  
    <th>Square</th></tr>  
    <c:forEach var="x" begin="0" end="10" step="2">  
    <tr><td><c:out value="${x}"/></td>  
        <td><c:out value="${x * x}"/></td>

    </tr>  
   </c:forEach>  
  </table>  


三、字符串"47,52,53,55,46,22,16,2" 分隔. 


   <table border="1"> 
   <c:forTokens items="47,52,53,55,46,22,16,2" delims="," var="dailyPrice"> 
    <tr><td><c:out value="${dailyPrice}"/></td></tr> 
   </c:forTokens> 
   </table><p> 


四、使用步长 


   <table>  
    <tr><th>second</th>  
    <th>second</th></tr>  
    <c:forEach var="seconds" begin="0" end="${pageContext.session 
.maxInactiveInterval}" step="60">  
    <tr><td><c:out value="${seconds}"/></td>  
        <td><c:out value="${seconds}"/></td></tr>  
   </c:forEach>  
  </table> <p> 


五、对数组进行循环


  <% int ai[] = {10, 20, 30, 40, 50}; 
  pageContext.setAttribute("ary", ai); 
  %> 
  <c:forEach var="i" items="${ary}"> 
    <c:out value="${i}"/>* 
  </c:forEach><p> 

<% 
   Cookie c=new Cookie("cookie1","one"); 
   response.addCookie(c); 
%> 

<%  
  Cookie cookies[]=request.getCookies();  
  Cookie sCookie=null;   
  String sname=null;  
  String name=null;  
  if(cookies==null) // 如果没有任何cookie  
    out.print("none any cookie");  
  else  
  {  
    //out.print(cookies.length + "<br>");  
    for(int i=0;i<cookies.length; i++) // 循环列出所有可用的Cookie  
    {  
     sCookie=cookies[i];     [转自:51item.net]  
      sname=sCookie.getName();  
      name = sCookie.getValue();  
      out.println(sname + "->" + name + "<br>");  
    }  
  }   
%>  
  
<table border="1" align="center">  
   <tr><th>Cookie Name</th>  
    <th>Cookie Value</th></tr>  
    <c:forEach var="cook" items="${pageContext.request.cookies}">  
    <tr><td><c:out value="${cook.name}"/></td>  
        <td><c:out value="${cook.value}"/></td></tr>  
   </c:forEach>  
  </table> <p> 

六、字符串数组循环 


<% String as[] = { 
            "A first string", "La deuxieme string", "Ella troisiemo stringo" 
        }; 
        request.setAttribute("stringArray", as); 
%><p> 
<c:forEach var="string" items="${stringArray}"> 
  <c:out value="${string}"/><br> 
</c:forEach> 


七、枚举 


<% 
Hashtable hashtable1 = new Hashtable(); 
           pageContext.setAttribute("numberMap", hashtable1); 
      
        hashtable1.put(new Integer(1), "uno"); 
        hashtable1.put(new Integer(2), "dos"); 
        hashtable1.put(new Integer(3), "tres"); 
        hashtable1.put(new Integer(4), "cuatro"); 
        hashtable1.put(new Integer(5), "cinco"); 
        hashtable1.put(new Integer(6), "seis"); 
        hashtable1.put(new Integer(7), "siete"); 
        hashtable1.put(new Integer(8), "ocho"); 
        hashtable1.put(new Integer(9), "nueve"); 
        hashtable1.put(new Integer(10), "diez"); 

        java.util.Enumeration enumeration = hashtable1.keys(); 
        pageContext.setAttribute("enumeration", enumeration); 
%> 

   <c:forEach var="item" items="${enumeration}" begin="2" end="10" step="2"> 
     <c:out value="${item}"/><br> 
   </c:forEach><p> 


八、map<p> 
   <c:forEach var="prop" items="${numberMap}" begin="1" end="5"> 
     <c:out value="${prop.key}"/> = <c:out value="${prop.value}"/><br> 
   </c:forEach> 

  

</body> 
</html>  

posted on 2011-01-24 08:37 tovep 阅读(2335) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航:
 
主页