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. MAVEN 打包JAR

    <build> <finalName>edu-service-user</finalName> <resources> <resource> ...

  2. IO 调优

    磁盘优化 1.增加缓存 2.优化磁盘的管理系统 3.设计合理的磁盘存储数据块 4.应用合理的RAID策略 TCP网络参数调优 网络IO优化 1.减少网络交互次数 2.减少网络传输数据量的大小 3.尽量 ...

  3. EF异常探究(An entity object cannot be referenced by multiple instances of IEntityChangeTracker.)

    今天在改造以前旧项目时出现了一项BUG,是由于以前不规范的EF写法所导致.异常信息如下: "An entity object cannot be referenced by multiple ...

  4. eval函数的坑

    开发工作中遇到这样一种情形,需要执行用户输入的php代码串,于是决定使用eval函数.coding大概示例如下: function getStr($str) { return strlen($str) ...

  5. LeetCode 111. Minimum Depth of Binary Tree (二叉树最小的深度)

    Given a binary tree, find its minimum depth. The minimum depth is the number of nodes along the shor ...

  6. 解析 .Net Core 注入 (3) 创建对象

    回顾 通过前两节的学习,我们知道 IServiceCollection 以元数据(ServiceDescriptor)的形式存放着用户注册的服务,它的 IServiceCollection 的拓展方法 ...

  7. 忘记root密码,进入单用户模式修改密码

    进入单用户模式 rhel61.在系统数秒时,按下键,进入到系统引导菜单 中2.选择系统后 按“e”键 选择kernel后 按“e”键 后空格 1+回车 b:启动系统 进入到单用户模式 rhel71.在 ...

  8. Kotlin——最详细的接口使用、介绍

    在Kotlin中,接口(Interface)的使用和Java中的使用方式是有很大的区别.不管是接口中的属性定义,方法等.但是定义方式还是相同的. 目录 一.接口的声明 1.接口的声明 关键字:inte ...

  9. 异步API

    整合到一起,作为参考: //2 5 3 4 1 //2 5 3 1 4 var img = new Image(); img.src = '.'; img.onerror = function() { ...

  10. 版本控制之五:SVN trunk(主线) branch(分支) tag(标记) 用法详解和详细操作步骤(转)

    使用场景: 假如你的项目(这里指的是手机客户端项目)的某个版本(例如1.0版本)已经完成开发.测试并已经上线了,接下来接到新的需求,新需求的开发需要修改多个文件中的代码,当需求已经开始开发一段时间的时 ...