迭代操作-->c:forEach和c:forTokens
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的更多相关文章
- [jstl] forEach标签使用
在JSP的开发中,迭代是经常要使用到的操作.例如,逐行的显示查询的结果等.在早期的JSP中,通常使用Scriptlets来实现Iterator或者Enumeration对象的迭代输出.现在,通过JS ...
- JSP 基础之 JSTL <c:forEach>用法
在JSP的开发中,迭代是经常要使用到的操作.例如,逐行的显示查询的结果等.在早期的JSP中,通常使用Scriptlets来实现Iterator或者Enumeration对象的迭代输出.现在,通过JST ...
- jstl中<c:forEach>的用法
在JSP的开发中,迭代是经常要使用到的操作.例如,逐行的显示查询的结果等.在早期的JSP中,通常使用Scriptlets来实现Iterator或者Enumeration对象的迭代输出.现在,通过JST ...
- [Java] JSP笔记 - EL、JSTL 常用标签
一. 什么是 EL 语言 表达式语言(EL)是 JSP 2.0 引入的一种计算和输出 Java 对象的简单语言. 二.EL 语言的作用 为了使JSP写起来更加简单.表达式语言的灵感来自于 ECMASc ...
- EL和JSTL专题
EL简介 EL全名为Expression Language,它原本是JSTL 1.0为方便存取数据所自定义的语言.当时只能在JSTL标签中使用,如下: <c:out value="${ ...
- Java Servlet(十):JSTL核心标签库
JSTL全名称:JaveServer Pages Standard Tag Library.JSTL是由JCP(Java Community Process)所定制的标准规范,它主要提供给Java W ...
- JSTL标签用法 详解
在JSP的开发中,迭代是经常要使用到的操作.例如,逐行的显示查询的结果等.在早期的JSP中,通常使用Scriptlets来实现Iterator或者Enumeration对象的迭代输出.现在,通过JST ...
- 20160331javaweb之JSP 标签技术
jsp的标签技术:在jsp页面中最好不要出现java代码,这时我们可以使用标签技术将java代码替换成标签来表示 1.jsp标签:sun原生提供的标签直接在jsp页面中就可以使用 <jsp:in ...
- JSEL 表达式
JSTL标签库的使用是为类弥补html表的不足,规范自定义标签的使用而诞生的.在告别modle1模式开发应用程序后,人们开始注重软件的分层设计,不希望在jsp页面中出现java逻辑代码,同时也由于自定 ...
随机推荐
- [oracle 使用(2)] Oracle的简单使用
1:oracle的服务 oracleservice + sid # 数据库服务 oracleoradb10g_home1listener # 数据库的监听服务. 2:启动本机数据库: 启动oracle ...
- MySql 5.7.20安装
1.首先上MySql的官网下载 https://dev.mysql.com/downloads/mysql/ 以我所选版本为例(免安装版),选择MYSQL Community Server 然后在右 ...
- linux系统莫名被黑的诡异经历
2017年10月28日,ssh登录本地虚拟机之后发现主机名被改成了HUAIWEI_P10. 我一个同事用的此款手机,起初怀疑是他,没放心上. 今天(10月30)发现自己ssh登录不上了.恼火了办公室开 ...
- 读取本地的json文件
最近写项目需要读取本地的json文件,然后悲催的发现前端新手的我居然不会,查查找找发现这东西并不难,但是应该是比较常用的,毕竟json太好用了! 我是直接用的jquery实现的,但是Ajax也可以,不 ...
- Kotlin——最详解的类(class)的使用
在任何一门面向对象编程的语言里,类(class)是非常基础.但也是非常重要的一项组成,通俗的说就是万般皆对象,而所说的对象就是我们生成的类.Kotlin也是如此,下面详细为大家介绍Kotlin中的类的 ...
- 数据处理不等式:Data Processing Inequality
我是在差分隐私下看到的,新解决方案的可用性肯定小于原有解决方案的可用性,也就是说信息的后续处理只会降低所拥有的信息量. 那么如果这么说的话为什么还要做特征工程呢,这是因为该不等式有一个巨大的前提就是数 ...
- struts2(四)之输入校验
前言 这个本来是昨天就写好的,但是不知道为什么没有保存成功!但是今天起来再写一遍就当巩固一下知识吧. 一.输入校验概述 在以前我们写一个登录页面时,并没有限制用户的输入,不管用户输入什么,我们都存入数 ...
- Pick apples(大范围贪心,小范围完全背包)
Pick apples Time Limit: 1000MS Memory Limit: 165536KB Submit Statistic Discuss Problem Description O ...
- FTP&samba 服务简单部署
第1章 FTP服务部署 在Linux下,我们应用最广泛的FTP服务程序是 vsftpd ( TCP端口:而NMB服务是负责解析用的,类似与DNS实现的功能,NMB可以把Linux系统共享的工作组名称与 ...
- 基于JQuery EasyUI的WebMVC控件封装(含源码)
JQuery EasyUI类库,大家不会陌生,出来已经有很多年了.个人感觉还是很好用的,作者更新频率也很快,bug也及时修复. 最近在整理以前的代码,找到了这个组件,它是将EasyUI组件封装成MVC ...