JSTL标签 使用总结,foreach

最近开发一个网站,经常使用JSTL,这种语法与以前的不同,开始用着非常吃力,今天总结一下,供大家参考。

一、前言

JSTL全名为JavaServer Pages Standard Tag Library,JSTL是由JCP(Java Community Process)所制定的标准规范,它主要提供给Java Web开发人员一个标准通用的标签函数库。

二、导入使用

2.1 在pom.xml里面添加jar包

<!-- JSTL -->
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
    <version>1.1.2</version>
</dependency>
<dependency>
    <groupId>taglibs</groupId>
    <artifactId>standard</artifactId>
    <version>1.1.2</version>
</dependency>

2.2 在jsp文件头添加说明

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %> 

2.3 添加文件夹

在相目\WEB-INF\tld\文件夹中放入常用的tld文件:c.tld,fmt.tld

三、核心标签库

JSTL 核心标签库(C标签)标签共有13个,功能上分为4类:

  1. 表达式控制标签:out、set、remove、catch
  2. 流程控制标签:if、choose、when、otherwise
  3. 循环标签:forEach、forTokens
  4. URL操作标签:import、url、redirect

3.1 <c:forEach> 标签

为循环控制,它可以将集合(Collection)中的成员循序浏览一遍。

3.1.1 <c:forEach> 标签的语法:

3.1.1.1 基本语法

迭代一集合对象之所有成员

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

迭代指定的次数

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

3.1.1.2 事例:

普通事例:

<c:forEach items="${compareShowDto.tgtColumnMetaDataList}" var="item">
    <th>${item.name}</th>
</c:forEach>

嵌套foreach事例:

<c:forEach items="${compareShowDto.compareColumnMetaData}" var="rows">
    <tr <c:if test="${rows.theSame==‘false‘}"> style="color:red" </c:if>>
        <td style="background-color: #f5f5f5">${rows.theSame}</td>
        <c:forEach items="${rows.srcRowData.columnObjects}" var="item">
            <td><c:out value="${item}"/></td>
        </c:forEach>
        <td style="background-color: #ff7800;"></td>
        <c:forEach items="${rows.tgtRowData.columnObjects}" var="item">
            <td><c:out value="${item}"/></td>
        </c:forEach>
    </tr>
</c:forEach>

3.1.1.3 <c:forEach> 标签的 属性说明 :

3.1.1.4 <c:forEach> 标签的 属性 : varStatus属性: 它的提供另外四个属性:index,count,fist和last,它们个自的意义如下:

属性                   类型                                  意义
index                  number                    现在指到成员的索引
count                  number                    总共指到成员的总和
first                  boolean                   现在指到成员是否为第一个
last                   boolean                   现在指到成员是否为最后一个

<c:forEach> 遍历 List列表

对于一个基本类型的数组,当前元素将作为相应包装类(Integer、Float等等)的一个实例提供。

<c:forEach items="${domainList }" var="item">
<tr>
  <td align="center" valign="middle">${item["domain"]==null?"&nbsp;":item["domain"]}</td>
  <td align="center" valign="middle"><fmt:formatDate value="${item[‘bind_date‘]}" pattern="yyyy-MM-dd HH:mm:ss"/></td>
  <td align="center" valign="middle">
    <c:if test="${item[‘domain‘]!=null}">
    <a href="javascript:;" id="${item[‘domain‘]}" class="del">&nbsp;</a>
    </c:if>
    </td>
</tr>
</c:forEach>  

 <c:forEach> 遍历Map:

对于一个java.util.Map,当前元素则作为一个java.util.Map.Entry提供。

<c:if test="${!empty permissionMap}">
<c:forEach items="${permissionMap}" var="item">
<tr>
    <td>${item.value.id}</td>
    <td>${item.value.urlOnClass}</td>
    <td>${item.value.urlOnMethod}</td>
</tr>
</c:forEach>
</c:if>    
时间: 2024-10-05 13:08:57

JSTL标签 使用总结,foreach的相关文章

JSTL标签之c:foreach,c:if标签小结

<c:forEach>标签用于通用数据循环,它有以下属性 属 性 描 述 是否必须 缺省值 items 进行循环的项目 否 无 begin 开始条件 否 0 end 结束条件 否 集合中的最后一个项目 step 步长 否 1 var 代表当前项目的变量名 否 无 varStatus 显示循环状态的变量 否 无 begin和end属性 可以指定开始循环位置和结束循环位置.例如 从集合第二个元素开始迭代: <c:forEach items="${userInfo.roleTypeE

Java实战之04JavaWeb-04JSP、EL表达式、JSTL标签库

一.jsp部分 只要是与页面显示相关的都是重点 1.jsp的脚本 <%java代码%>:被翻译到service方法内部,局部变量,局部的功能 <%=表达式或变量%>:翻译成service方法中out.write(表达式或变量) <%!java代码%>:被翻译成servlet的全局的内容,方法,全局变量 2.jsp的运行原理 jsp在运行时翻译成servlet index.jsp------>work/index_jsp.java----->work/inde

jstl标签 core fmt fn函数使用参考(为第一篇的补充,更为实用)

JSTL标签 参考手册 前言 ========================================================================= JSTL标签库,是日常开发经常使用的,也是众多标签中性能最好的.把常用的内容,放在这里备份一份,随用随查.尽量做到不用查,就可以随手就可以写出来.这算是Java程序员的基本功吧,一定要扎实. JSTL全名为JavaServer Pages Standard Tag Library,目前最新的版本为1.1版.JSTL是由J

EL表达式、 jstl标签

EL表达式(Expression Language) 目的:为了使JSP写起来更加简单.表达式语言的灵感来自于 ECMAScript 和 XPath 表达式语言,它提供了在 JSP 中简化表达式的方法,让Jsp的代码更加简化. 1.语法结构 ${expression} 2.[ ]与.运算符 EL 提供"."和"[ ]"两种运算符来存取数据. 当要存取的属性名称中包含一些特殊字符,如 . 或 - 等并非字母或数字的符号,就一定要使用"[ ]".例如

JSTL标签详解以及应用实例

JSTL Apache提供的标签库,jar包:jstl-1.2.jar,如果用MyEclipse,它会在我们导入jar包,无需自己导入,如果没有使用MyEclipse那么需要自行导入. ------------------ 导入JSTL核心标签库 <%taglib prefix="c" uri="http://java.sun.com/jstl/core"%> <c:set> * <c:set var="a" val

第六周作业-JSTL标签库

JSP页面作为内嵌java的Html简化了Servlet在控制页面显示的语法,但JSP脚本中的表达式功能不够强大,语法也稍显繁杂,EL(Expression Language)表达式语言的出现能够大大简化JSP页面中的JAVA代码,配合JSTL核心标签库,让JSP更为灵活易用. JSTL(JSP Standard Tag Library,JSP标准标签库)是一个由Apache基金会不断完善的开源JSP标签库. JSTL标签根据其功能一般分为以下五类: 1.核心标签库(Core Tags) 2.格

JSP常用标签——JSTL标签和EL表达式

一.JSTL简介 1.什么是JSTL JSTL是Java中的一个定制标记库集.(这个标记库集不需要自己编写,可以直接使用) 2.为什么要使用JSTL 实现了JSP页面中的代码复用(基于标签库原理,重复率较高的代码块支持复用,提高效率) 书写JSP页面时可读性更强(长得很像xml,方便前端查看和参与开发) 用事实告诉你为什么使用JSTL: 实现: 但是,使用JSTL效果如下: 3.JSTL环境搭建 JSTL的下载: 下载地址:http://archive.apache.org/dist/jakar

jstl标签的使用方式

一.什么是Jstl jstl是:java标准标签库 jstl的作用:替代jsp中逻辑脚本(for,while,if等) 最终目的:使用jstl+el表达式完全替代jsp的脚本 二.使用jstl的准备工作 导入jstl的jar包(jdk5.0之后已经jstl库集成)手动导入的方式就是把jstl的jar包放到lib文件夹下 在页面上引入jstl标签库 <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c&qu

JSTL标签用法 详解(转)

JSTL 核心标签库标签共有13个,功能上分为4类: 1.表达式控制标签:out.set.remove.catch 2.流程控制标签:if.choose.when.otherwise 3.循环标签:forEach.forTokens 4.URL操作标签:import.url.redirect 使用标签时,一定要在jsp文件头加入以下代码: <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"

JavaWeb学习之JSP常用标签、EL表达式的运算符、JSTL标签库(6)

1.JSP常用标签 * 只要支持JSP文件,常用标签有可以直接使用 * 格式: jsp:xxxx * jsp:forward ,完成jsp页面的转发 * page属性:转发的地址 <% request.setCharacterEncoding("UTF-8"); %> <jsp:forward page="/index.jsp"> <jsp:param value="张三" name="userName&q