`

JSTL forEach

 
阅读更多
JSTL forEach的用法(2010-06-14 16:29:26)转载标签: 杂谈 
<c:forEach>标签的语法定义如下所示。

<c:forEach var="name" items="expression" varStatus="name"

begin="expression" end="expression" step="expression">

body content

</c:forEach>

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

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

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

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

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

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

l step:迭代的步长。

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

l java.util.Collection:调用iterator()来获得的元素。

l java.util.Map:通过java.util.Map.Entry所获得的实例。

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

l java.util.Enumeration:枚举元素。

l Object实例数组:数组元素。

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

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

l javax.servlet.jsp.jstl.sql.Result:SQL查询所获得的行。

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

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

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

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

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

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

l begin:begin属性的值。

l end:end属性的值

l step:step属性的值

下面就来看一个个基本的例子,表格隔行背景色变化



<%@ 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> <p>
三、字符串"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>
五、对数组进行循环<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>



本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/jianpingdu2009/archive/2010/05/17/5600738.aspx
分享到:
评论

相关推荐

    jstl标签 forEach详解

    jstl forEach 标签详解 jstl forEach 标签是 JavaServer Pages Standard Tag Library (JSTL) 中的一个标签,用于循环控制,可以将集合中的成员循序浏览一遍。该标签的运作方式为当条件符合时,就会持续重复执行的...

    jstl-1.2.rar_JSTL_jstl 1.2_jstl jar_jstl-1.1.2.jar _jstl.jar

    **JSTL(JavaServer Pages Standard Tag Library)详解** JSTL,全称为JavaServer Pages Standard Tag Library,是Java Web开发中的一个标准标签库,它为开发者提供了在JSP页面中处理常见任务的标签,例如迭代、...

    JSTL相关Jar包(jstl+standard)

    JSTL,全称为JavaServer Pages Standard Tag Library,是Java服务器页面标准标签库,它提供了一系列的标签来简化JSP开发,使开发者能够更高效地编写动态网页。JSTL的主要目标是减少在JSP页面中使用脚本元素,提升...

    jstl1.1和jstl1.0

    然后就可以在页面中使用如`&lt;c:forEach&gt;`,`&lt;c:if&gt;`这样的标签。 总的来说,JSTL1.1相对于JSTL1.0提供了更好的功能集和性能,特别是在与EL集成方面,是现代JSP应用中的一个强大工具。选择合适的版本应考虑项目所使用...

    jstl练习实例,学习JSTL

    本篇将详细讲解JSTL的基本概念、核心组件以及通过"jstl练习实例"进行的学习要点。 一、JSTL简介 JSTL是由Apache软件基金会的Jakarta项目维护的一个开源库,它提供了多种预定义的标签,用于处理常见的JSP任务,如...

    JSTL.rar_JSTL_JSTL下载

    1. **Core标签库**:提供了一系列与页面控制流相关的标签,例如`&lt;c:if&gt;`(条件判断)、`&lt;c:forEach&gt;`(迭代)、`&lt;c:choose&gt;`(选择结构)等,这些标签使得开发者可以更方便地在JSP页面上进行逻辑控制。 2. **Format...

    jstl标签jar包(jstl-api-1.2和jstl-impl-1.2)

    - `&lt;c:forLoop&gt;` 和 `&lt;c:forEach&gt;`:循环操作。 - `&lt;c:url&gt;` 和 `&lt;c:param&gt;`:创建URL并添加参数。 - `&lt;c:remove&gt;`:移除一个变量。 - `&lt;c:redirect&gt;` 和 `&lt;c:forward&gt;`:页面重定向和转发。 **JSTL的SQL库(sql)*...

    jstl-jar包

    **JSTL(JavaServer Pages Standard Tag Library)**是一个用于JavaServer Pages(JSP)的标签库,旨在简化Web应用程序的开发。它提供了一系列预定义的标签,使得开发者可以通过简单的XML标记来处理常见任务,而无需...

    jstl-api-1.2.jar、jstl-impl-1.2.jar

    **jstl-api-1.2.jar** 包含了JSTL的接口定义,定义了各种标签的API,比如`&lt;c:forEach&gt;`、`&lt;fmt:formatDate&gt;`等。这个jar文件通常被添加到项目的编译类路径(classpath)中,这样编译器就可以识别JSTL相关的代码,并...

    jstl 遍历_jstl遍历_

    总之,JSTL遍历是Java Web开发中的重要工具,通过使用`&lt;c:forEach&gt;`标签,我们可以轻松地处理各种集合数据,将其展示在用户界面中,如select下拉框,从而提升用户体验。在实际项目中,掌握JSTL的使用不仅可以提高...

    JSTL中文帮助文档

    - `&lt;c:forEach&gt;` 和 `&lt;c:forTokens&gt;`:循环标签,处理数组、集合和字符串。 - `&lt;c:redirect&gt;` 和 `&lt;c:forward&gt;`:处理请求重定向和转发。 - `&lt;c:url&gt;` 和 `&lt;c:param&gt;`:构建 URL 并添加参数。 2. **I/O 标签库 ...

    jstljar包包含jstl.jar和standard.jar文件

    例如,`&lt;c:if&gt;`用于条件判断,`&lt;c:forEach&gt;`用于循环,`&lt;fmt:formatDate&gt;`用于日期格式化等。使用这些标签,开发者可以更清晰地组织JSP页面,使代码更易于理解和维护。 **standard.jar**文件是JSTL的依赖库,主要是...

    <c:forEach>/jstl-1.2

    &lt;c:forEach&gt; 为循环控制,它可以将集合(Collection)中的成员循序浏览一遍。运作方式为当条件符合时,就会持续重复执行&lt;c:forEach&gt;的本体内容。 语法 语法1:迭代一集合对象之所有成员 &lt;c:forEach [var="varName...

    jstl帮助 jstl帮助手册 jstl帮助文档

    例如`&lt;c:if&gt;`用于条件判断,`&lt;c:forEach&gt;`用于遍历集合,`&lt;c:choose&gt;`、`&lt;c:when&gt;`和`&lt;c:otherwise&gt;`用于多分支选择。 2. **Format/International化标签库 (fmt)**:提供了处理日期、时间、数字格式化以及国际化和...

    jstl-impl-1.2.jar和jstl-api-1.2.jar

    例如,`&lt;c:forEach&gt;`、`&lt;fmt:formatDate&gt;`等,这些都是通过API接口实现的。 2. **jstl-impl-1.2.jar**: 这个jar文件是JSTL的具体实现,包含了JSTL API的实际实现类和相关的库。当JSP页面在服务器上运行时,会调用这...

    jstl的两个jar包

    这将允许我们在JSP页面中使用如`&lt;c:forEach&gt;`、`&lt;fmt:formatDate&gt;`等JSTL标签。 总的来说,JSTL是Java Web开发中一个重要的工具,它提高了代码的可读性和可维护性,减少了与Servlet和JSP脚本元素的交互。`jstl-1.2....

    jstl_jar包.zip

    这行代码引入了 JSTL 核心库,并将前缀 "c" 关联到 JSTL 核心库的 URI,之后就可以在 JSP 页面中使用如 `&lt;c:forEach&gt;`、`&lt;c:if&gt;` 这样的标签了。 **JSTL 动态包含技术**: JSTL 提供的 `&lt;c:import&gt;` 标签可以实现...

    JSTL最新版本(1.2.1)完整下载

    JavaServer Pages Standard Tag Library,简称JSTL,是用于Java Web开发的标准标签库,它提供了一组用于处理常见任务的标签,比如迭代、条件判断、XML处理等,从而减轻了在JSP页面中使用Java脚本的复杂性。JSTL ...

    JSTL标签库依赖,内含Tomcat8、Tomcat10所需JSTL依赖

    3. 使用JSTL标签:现在可以在JSP页面中使用JSTL标签,如`&lt;c:forEach&gt;`进行迭代,`&lt;c:if&gt;`进行条件判断,`&lt;fmt:formatDate&gt;`格式化日期等。 总之,JSTL是提升JSP页面编写效率的重要工具,而依赖注入则是现代Java应用...

Global site tag (gtag.js) - Google Analytics