最近开发一个网站,经常使用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>

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

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

    <c:forEach>标签用于通用数据循环,它有以下属性 属 性 描 述 是否必须 缺省值 items 进行循环的项目 否 无 begin 开始条件 否 0 end 结束条件 否 集合中的 ...

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

    一.jsp部分 只要是与页面显示相关的都是重点 1.jsp的脚本 <%java代码%>:被翻译到service方法内部,局部变量,局部的功能 <%=表达式或变量%>:翻译成se ...

  3. jsp页面使用EL表达式 使用Jstl标签库中的标签,需要引入jstl.jar和standard.jar

    spring boot 中使用jstl 首先在pom中加入 <dependency> <groupId>jstl</groupId> <artifactId& ...

  4. JSTL标签出错:<c:forEach var="book" items="${requestScope.books}" varStatus="status">

    今天在运行书里的JSTL标签代码的时候出错,总结一下: 问题1.The JSP specification requires that an attribute name is preceded by ...

  5. JSTL标签用法:<c:choose><c:forEach><c:if><c:when><c:set>

    JSP 标准标记库( Standard Tag Library , JSTL) 是一组以标准化格式实现许多通用的 Web 站点功能的定制标记. JSP 技术的优势之一在于其定制标记库工具.除了核心 J ...

  6. JSTL详解(常用标签以及c:forEach遍历集合)

    JSTL标签 一. JSTL的简介 1. 什么是JSTL 2. JSTL常用标签库 3. JSTL使用步骤 二. 核心标签库常用标签 1. c: set 标签 2. c: out 标签 3. c: i ...

  7. JSTL标签 参考手册

    前言 ========================================================================= JSTL标签库,是日常开发经常使用的,也是众多 ...

  8. JSTL标签库

    JSP页面作为内嵌java的Html简化了Servlet在控制页面显示的语法,但JSP脚本中的表达式功能不够强大,语法也稍显繁杂,EL(Expression Language)表达式语言的出现能够大大 ...

  9. 重温JSP学习笔记--JSTL标签库

    以前写jsp的时候对jstl标签库是有些抵触的,因为我觉得嵌入java代码的方式几乎无往不利,没有必要使用标签库,不过这次复习还是好好地学习了一下,发现这个还是很有用处的,用得好能省不少事,JSTL是 ...

  10. 简单实用JSTL标签库

    1. JSTL标签库是一个什么东东? 简单来说,有了它你就可以在类似HTML的JSP页面里面运用一些高级语法,实现迭代.条件判断.XML文档操作.国际化标签.SQL标签. 2. 如何使用 ? 参考网址 ...

随机推荐

  1. CSS3:透明度

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. Ext.js中自己扩展的EasyGrid

    这里只写了一些核心的代码,具体如下: Ext.ux.EasyGrid = Ext.extend(Ext.grid.GridPanel, { initComponent: function () { t ...

  3. 关于git中Pageant开机启动且自动关联秘钥

    Pageant在git中主要负责和服务器端进行身份验证,但是我们每次在启动Pageant后都需要手动的加载秘钥文件,这其实是一个比较烦的过程,我们怎么能够使其自动的完成呢? 一.Pageant开机启动 ...

  4. JSON.NET 空值处理, 数字转字符,时间格式化

    public static string ToJsonString(this Object obj) { IsoDateTimeConverter idtc = new IsoDateTimeConv ...

  5. 阿里巴巴 Java 开发手册评述

    http://blog.jobbole.com/110427 阿里巴巴Java开发手册(终极版)https://pan.baidu.com/s/1c1UQM7Q 阿里巴巴Java开发规约插件p3cGi ...

  6. Asp.Net Core 2.0 项目实战(5)Memcached踩坑,基于EnyimMemcachedCore整理MemcachedHelper帮助类。

    Asp.Net Core 2.0 项目实战(1) NCMVC开源下载了 Asp.Net Core 2.0 项目实战(2)NCMVC一个基于Net Core2.0搭建的角色权限管理开发框架 Asp.Ne ...

  7. streaming优化:spark.streaming.receiver.maxRate

    使用spark.streaming.receiver.maxRate来限制你的吞吐的最大信息量. 因为当streaming程序的数据源的数据量突然变大巨大,可能会导致streaming被撑住导致吞吐不 ...

  8. 算法进阶面试题03——构造数组的MaxTree、最大子矩阵的大小、2017京东环形烽火台问题、介绍Morris遍历并实现前序/中序/后序

    接着第二课的内容和带点第三课的内容. (回顾)准备一个栈,从大到小排列,具体参考上一课.... 构造数组的MaxTree [题目] 定义二叉树如下: public class Node{ public ...

  9. Android应用开发-网络编程(二)

    Apache HttpClient框架 GET方式请求提交数据 1. 创建一个HttpClient HttpClient hc = new DefaultHttpClient(); 2. 创建一个Ht ...

  10. PLSQL Developer

    1 intall oracle11gex start OracleXEClrAgent start  OracleXETNSListener 2 install C:\Dev Tool\instant ...