jstl--->Core 核心标签库-->c:forEach

  在页面上遍历后台传到前台的数据是最基本的最常用的方法  主要包含两种迭代操作:forEach和forTokens

  语法1:迭代集合所有事物

    <c:forEach [var="varName"] items="collection" [varStatus="varStatusName"]  [begin="begin"] [end="end"] [step="step"]>  </c:forEach>

   语法2:迭代指定的次数

    <c:forEach [var="varName"] [varStatus="varStatusName"] begin="begin"  end="end" [step="step"]>  </c:forEach>

  属性:

    var ---> 存放当前成员

    items ---> 被迭代的集合

    varStatus ---> 存放当前对象相关咨询

    begin ---> 开始的位置

    end ---> 结束的位置

    step --->每次迭代的间隔数

   举个栗子:

  1、循环遍历,输出所有的元素。

  <c:foreach items="${list}" var="li">

   ${li}

  </c:foreach>

  --->items 用于接收集合对象,var 定义对象接收从集合里遍历出的每一个元素。同时其会自动转型。

   2、循环遍历,输出一个范围类的元素。  <c:foreach items ="${lis}" var = "li " begin="2" end ="12">  ${li}  </c:foreach>

  --->begin 定义遍历的开始位置,end定义遍历的结束位置。begin 和end的引号必须写。

  3、循环遍历,输出除某个元素以外的元素或输出指定元素。

     <c:foreach items="${list}" var ="li" varStatus="status">  <c:if text="${status.count==1}>  ${"第一个元素不要"}  </c:if>  ${li}  </ c:foreach>

  --->varStatus 表示当前集合的状态,count为循环一个计算器。

   4、循环遍历,输出第一个或最后一个元素。

    <c:foreach items="${list}" var ="li" varStatus="status">      

      <c:if text="${status.first}">我是第一个元素</c:if>

      c:if text="${status.last}">我是最后一个元素</c:if>

    </c:foreach>

  --->first表示如果是一个元素,则返回ture,反之则返回false  last 表示如果是最后一个元素,则返回ture,反之则返回false。

  5、循环遍历,按指定步长输出。

    <c:forEach items="${atts}" var="item" begin="1" end="4" step="2" >  ${item}</br>  </c:forEach>

  -->表示从集合1-4每隔2个打印出来(1,3);

    <c:forEach items="${atts}" var="item" begin="4" end="10" step="4" >  ${item}</br>  </c:forEach>

  -->表示从集合4-10每隔4个打印出来(4,8);

  注:c:forEach并不只是用来浏览集合而已,items并不是一定要有的属性,但是当没有使用items时就必须要有  begin和end两个属性,

  举个栗子:  <c:forEach begin="1" end="10" var="item" >  ${item}</br>  </c:forEach>

  只有设定begin和end值它既变成一个简单的集合,他将1-10赋值给item

  varStatus ---> 他有四个属性:

     index:当前成员的索引

     count:但目前为止当前成员的总数

     first:当前成员是否是第一个

     last:当前成员是否是最后一个

  例:   <c:forEach items="${atts}" var="item" varStatus="s">  <h2><c:out value="${item}"/> </h2>  index ${s.index}</br>  count ${s.count}</br>  first ${s.first}</br>  last ${s.last}</br>  </c:forEach>

jstl--->Core 核心标签库-->c:forTokens>

  用来浏览一组字符串的所有成员,由定义符号(delimiters)所分割

  语法:  <c:forTokens items="stringOfTokens" delims="delimiters" [var="varName"]  [varStatus="varStatusName"] [begin="begin"] [end="end"] [step="step"]>  </c:forTokens>

  属性:

    var: 存放当前知道的成员

    items: 被迭代的字符串

    delims: 定义用来分割字串的字元

    varsttus: 存放当前对象相关咨询

    begin: 开始的位置

    end: 结束的位置

    step: 每次迭代的间隔数

  -->与forEach的区别在于items和delims这两个属性,items必须为字符串,而delims作为分隔符

  举几个栗子:

     <c:forTokens items="A,B,C,D,E" delims="," var="item" >  ${item}  </c:forTokens>

  页面会输出ABCDE,也就是说字符串被","分割为五部分,并执行了五次轮换,但是逗号没有别打印出来

    <c:forEach items="A,B,C,D,E" var="item" >  ${item}  </c:forEach>

  然而我们用c:forEach也能达到目的,区别在于c:Tokens的delims不止能指定一种字元来分割,可以有多种

    <c:forTokens items="A,B;C-D,E" delims=",;-" var="item" >  ${item}  </c:forTokens>

  用了三种分割符,所以如果使用c:forTokens来分割字符串,功能和弹性会比c:forEach来的较大

迭代操作-->c:forEach和c:forTokens的更多相关文章

  1. [jstl] forEach标签使用

     在JSP的开发中,迭代是经常要使用到的操作.例如,逐行的显示查询的结果等.在早期的JSP中,通常使用Scriptlets来实现Iterator或者Enumeration对象的迭代输出.现在,通过JS ...

  2. JSP 基础之 JSTL <c:forEach>用法

    在JSP的开发中,迭代是经常要使用到的操作.例如,逐行的显示查询的结果等.在早期的JSP中,通常使用Scriptlets来实现Iterator或者Enumeration对象的迭代输出.现在,通过JST ...

  3. jstl中<c:forEach>的用法

    在JSP的开发中,迭代是经常要使用到的操作.例如,逐行的显示查询的结果等.在早期的JSP中,通常使用Scriptlets来实现Iterator或者Enumeration对象的迭代输出.现在,通过JST ...

  4. [Java] JSP笔记 - EL、JSTL 常用标签

    一. 什么是 EL 语言 表达式语言(EL)是 JSP 2.0 引入的一种计算和输出 Java 对象的简单语言. 二.EL 语言的作用 为了使JSP写起来更加简单.表达式语言的灵感来自于 ECMASc ...

  5. EL和JSTL专题

    EL简介 EL全名为Expression Language,它原本是JSTL 1.0为方便存取数据所自定义的语言.当时只能在JSTL标签中使用,如下: <c:out value="${ ...

  6. Java Servlet(十):JSTL核心标签库

    JSTL全名称:JaveServer Pages Standard Tag Library.JSTL是由JCP(Java Community Process)所定制的标准规范,它主要提供给Java W ...

  7. JSTL标签用法 详解

    在JSP的开发中,迭代是经常要使用到的操作.例如,逐行的显示查询的结果等.在早期的JSP中,通常使用Scriptlets来实现Iterator或者Enumeration对象的迭代输出.现在,通过JST ...

  8. 20160331javaweb之JSP 标签技术

    jsp的标签技术:在jsp页面中最好不要出现java代码,这时我们可以使用标签技术将java代码替换成标签来表示 1.jsp标签:sun原生提供的标签直接在jsp页面中就可以使用 <jsp:in ...

  9. JSEL 表达式

    JSTL标签库的使用是为类弥补html表的不足,规范自定义标签的使用而诞生的.在告别modle1模式开发应用程序后,人们开始注重软件的分层设计,不希望在jsp页面中出现java逻辑代码,同时也由于自定 ...

随机推荐

  1. 【框架学习与探究之定时器--Hangfire】

    声明 本文欢迎转载,请注明文章原始出处:http://www.cnblogs.com/DjlNet/p/7603632.html 前言 在上篇文章当中我们知道关于Quartz.NET的一些情况,其实博 ...

  2. PHP获取文件扩展名的五种方式

    这是我应聘实习时遇到的一道笔试题: 使用五种以上方式获取一个文件的扩展名. 要求:dir/upload.image.jpg,找出 .jpg 或者 jpg , 必须使用PHP自带的处理函数进行处理,方法 ...

  3. [译]ASP.NET Core 2.0 布局页面

    问题 如何在ASP.NET Core 2.0项目中共享可见元素.代码块和指令? 答案 新建一个空项目,首先添加GreetingService服务和UserViewModel模型: public int ...

  4. JavaUtil_04_验证码生成器

    一.原理 验证码其实就是随机串.原理上可分为两种: 1.简单的验证码 直接通过字母和数字的ASCII码生成.本文采用的验证码就是这种. 2.复杂的验证码 通过一个随机串,一个指定串(如accesske ...

  5. Maven合并多个war包的工程需要用到的插件

    <build> <finalName>WebSite</finalName> <plugins> <!-- 配置war包合并的插件 --> ...

  6. addEventListener 的事件函数的传递【转载】

    addEventListener 参数如下: addEventListener(type, listener[, useCapture]); type,事件名称 listener,事件处理器 useC ...

  7. 使用Docker运行Microsoft SQL Server 2017

    最近每天都在空闲时间努力编写Apworks框架的案例代码WeText.在文本发布和处理微服务中,我打算使用微软的SQL Server for Linux来做演示,于是也就在自己的docker-comp ...

  8. 按键精灵 vbs 获取网页源码 xp系统被拒绝

    如下面的代码所示,获取新浪博客某个指定网页的源码 verurl = "http://blog.sina.com.cn/s/blog_9ea1db7b0101o7ch.html?" ...

  9. 07.十分钟学会tomcat数据源

    一.数据源的作用及操作原理 1,  首先先看下传统JDBC的操作 在tomcat中使用数据库连接池操作数据库 2,JNDI属于命名及目录查找接口,在javaee的javax.naming包中 这套AP ...

  10. Hadoop 2.2.0单节点的伪分布集成环境搭建

    Hadoop版本发展历史 第一代Hadoop被称为Hadoop 1.0 1)0.20.x 2)0.21.x 3)0.22.x 第二代Hadoop被称为Hadoop 2.0(HDFS Federatio ...