JSTL之迭代标签库

JSTL的全称是 Java Server Pages Standard Tag Library,翻译过来就是JSP标准标签库,它包含了在开发JSP页面时经常用到的一组标准标签。这些标签提供了一种不用嵌入Java代码就可以开发复杂的JSP页面的方法。

在JSTL中一共有5大类标签库,其中有一个重要的核心标签库,而核心标签库根据功能不同又分为通用标签库、条件标签库、迭代标签库,今天我们要说的就是其中的迭代标签库。

在JSP的开发中,我们经常需要对集合对象进行迭代操作。例如,列表显示查询结果等,以往通常使用java代码实现集合对象的遍历,如List,Iterator等。现在我们所说的JSTL的迭代标签可以在很大程度上简化迭代操作。

<c:forEach>标签有两种语法格式,一种用于遍历集合对象的成员,另一种用于使语句循环执行指定的次数,下面我们来一一列举。

1.遍历集合对象的成员

<c:forEach var="varName" items="collectionName" varStatus="varStatuwsName"
begin="beginIndex" end="endIndex" step="step">显示内容</c:forEach>

上面就是一个forEach标签的基本语法格式,其中var属性是代表当前遍历的成员,items是指被迭代的集合对象,varStatus属性用于存放var引用的成员的相关信息,如索引等,begin表示开始的位置,默认为0,end表示结束为止,step表示循环的步长,默认为1。好了,现在我们已经知道了他的基本语法和各属性的作用,那么把他带入到程序中是怎样的呢?下面就用一个简单的Demo来个大家一个直观的呈现:

<%
List<String> list = new ArrayList<String>();
list.add("小明");
list.add("小红");
list.add("小刚");
request.setAttribute("list",list);
%>
<c:forEach var="varName" items="${list}" varStatus="varStatusName">
${varName}
</c:forEach>

这样就实现了一个简单的迭代效果,一般JSTL标签要和EL表达式联用,这样就可以简便的获取和输出数据。大家也看到了,这样直接遍历循环对象很简单,那么我们继续看他的下一种语法格式,也就是指定语句的执行次数。

2.指定语句的执行次数:

<c:forEach var="varName"  varStatus="varStatuwsName"
begin="beginIndex" end="endIndex" step="step">显示内容</c:forEach>

是不是看起来很熟悉呢,他的语法和上面没有太大不同,区别就是格式2不是对一个集合对象遍历,而是根据制定的begin属性,end属性以及step属性执行主体内容固定的次数。这种方法在实际开发中非常广泛,在很多开发中都要显示列表,报表,下面我们就用一个人员列表隔行变色的核心代码来演示他的效果:

 <table style="border:1px solid blue; width: 400px;">
<tr style="font-weight: bold; ">
<td>姓名</td><td>职位</td><td>年龄</td>
</tr>
<!--在servlet页面已经加进去一个集合-->
<c:forEach var="varName" items="${list}" varStatus="status">
<tr <c:if test="${status.index%2==0}">style="background-color: pink"</c:if></tr>
<td>${varName.name}</td><td>${varName.job}</td><td>${varName.age}</td>
</tr>
</c:forEach>
</table>

这样就有了一个好看的隔行变色效果:

是不是很好用呢?如果要用jquery或是HTML代码实现这种和数据库连接的样式会非常麻烦,使用JSTL标签让代码变得简便,并且其中的条件标签可以让代码多出更多的变化。

JSTL之迭代标签库的更多相关文章

  1. (5)JSTL的xml标签库

    Jstl的XML标签库 JSTL提供了操作xml文件的标签库,使用xml标签库可以省去使用Dom和SAX标签库的繁琐,能轻松的读取xml文件的内容. <%@ taglib uri="h ...

  2. (4)JSTL的SQL标签库

    jstl的SQL标签库 SQL tag Library中的标签用来提供在 JSP 页面中可以与数据库进行交互的功能Database access标签库有以下6组标签来进行工作: <sql:set ...

  3. JSTL I18N 格式标签库

    <%@ page language="java" pageEncoding="gbk"%> <%@ taglib prefix="c ...

  4. Java_jsp.jstl.Function函数标签库.记录

    JSTL Functions标签库 本书第12章的12.3节(定义和使用EL函数)介绍了EL函数的创建和使用方法.在JSTL Functions标签库中提供了一组常用的EL函数,主要用于处理字符串,在 ...

  5. JSTL (标准标签库)

    JSTL(标准标签库) 作用: Web程序员能够利用JSTL和EL来开发Web程序,取代传统直接在页面上嵌入Java程序(Scripting)的做法,以提高程序的阅读性.维护性和方便性. 使用方法:J ...

  6. JSTL 数字日期标签库

    <frm:formatNumber/>标签 该标签依据特定的区域将数字改变为不同的格式来显示. 被格式化的数据<frm:formatNumber> <fmt:format ...

  7. JSTL标签库之核心标签

    一.JSTL标签库介绍 JSTL标签库的使用是为弥补html标签的不足,规范自定义标签的使用而诞生的.使用JSLT标签的目的就是不希望在jsp页面中出现java逻辑代码 二.JSTL标签库的分类 核心 ...

  8. jstl标签库基础教程及其使用代码

    概述 在 JSP 页面中,使用标签库代替传统的 Java 片段语言来实现页面的显示逻辑已经不是新技术了,然而,由自定义标签很容易造成重复定义和非标准的实现.鉴于此,出现了 JSTL ( JSP Sta ...

  9. JSTL标签库大全

    JSTL简介: 标准标签库JSTL的全名为:Java Server Pages Standard Tag Library. JSTL主要提供了5大类标签库: 1.       核心标签库: 为日常任务 ...

随机推荐

  1. eclipse内使用tomcat项目究竟被部署到了哪里

    笔者在使用eclipse+tomcat做本地调试,项目没跑起来,原因就很奇怪啊(某前辈说过:奇怪源于无知),然后就想它究竟是把项目放到哪个目录下呢,我的tomcat/webapps目录下并没有啊. 默 ...

  2. hadoop安装与WordCount例子

    1.JDK安装 下载网址: http://www.oracle.com/technetwork/java/javase/downloads/jdk-6u29-download-513648.html  ...

  3. const和readonly差别

    我们都知道,const和static readonly的确非常像:通过类名而不是对象名进行訪问,在程序中仅仅读等等.在多数情况下能够混用.二者本质的差别在于,const的值是在编译期间确定的,因此仅仅 ...

  4. PHP根据数组的值分组

    PHP根据数组的值分组,php array中没有自带这个函数但是很常用,今天写了出来记录一下. 代码: $_array = array(        array(1,11,'2016-05-18') ...

  5. powershell 查看程序的tcp网络连接

    在运维工作中,常常查看某个业务的网络连接状况,在这里借用netstat来实现查找连接.用hash特性避免反复. $add=@{} while(1){ ps|?{$_.path -match 'E:\\ ...

  6. 开发腾讯移动游戏平台SDK ios版Ane扩展 总结

    本文记录了在开发 腾讯移动游戏平台SDK(MSDK) ios版Ane扩展 过程中所遇到的问题 文中非常多问题都是基础的问题.对object c和xcode配置了解不深入导致的.(没办法,开发ane的程 ...

  7. 使用python编写批量卸载android应用的脚本

    该脚本的功能是卸载android手机中安装的所有第三方应用,主要是使用adb shell pm.adb uninstall 命令,所以使用的前提是需要配好adb的环境变量,下面上代码: #!/usr/ ...

  8. .NET实现单点登录研究过程总结--【SSO】

    一.单点登录实现结果: 权限系统登录后,新生系统通过拦截器,获取本地的cookie能够訪问该系统:权限系统用户注销后,销毁本地cookie.訪问新生链接.自己主动跳转到登录首页. 二.主要遇到的问题: ...

  9. Jordan Lecture Note-2: Maximal Margin Classifier

    Maximal Margin Classifier Logistic Regression 与 SVM 思路的不同点:logistic regression强调所有点尽可能远离中间的那条分割线,而SV ...

  10. 实例源码--ZXing识别条形码和二维码识别源码

      下载源码 技术要点: 1.ZXing库的 使用 2.识别条形码和二 维码 3.自定义视图 4.源码带有非常详 细的中文注释 ...... 详细介绍: 1.ZXing库 ZXing是个很经典的条码/ ...