最近开发一个网站,经常使用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. 关于trim,ltrim ,rtrim 的 移除问题

    今天在PHP中遇到一个问题: echo ltrim('D:/wamp/www/phpnow/demo/','D:/wamp/www/'); echo ltrim('D:/wamp/www/phpnow ...

  2. ElasticSearch - match vs term

    match vs term 这个问题来自stackoverflow https://stackoverflow.com/questions/23150670/elasticsearch-match-v ...

  3. 攻击图生成工具mulval的安装和配置

    https://doc.mbalib.com/view/8620168b35e50fbe9b005fee33c192ad.html http://www.bingbig.com/227.html

  4. CentOS 用挂了dev/sda1:UNEXPECTED INCONSISTENCY;RUN fsck MANUALLY .

    dev/sda1:UNEXPECTED INCONSISTENCY;RUN fsck MANUALLY .(i.e. ,without -a or -p options)fsck died with ...

  5. BZOJ4974 八月月赛 Problem D 字符串大师 KMP

    欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ4974 - 八月月赛 Problem D 题意概括 一个串T是S的循环节,当且仅当存在正整数k,使得 ...

  6. 4.Django|ORM模型层

    ORM简介 MVC或者MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库,这极大的减轻了开发人员的 ...

  7. Storm中关于Topology的设计

    一:介绍Storm设计模型 1.Topology Storm对任务的抽象,其实 就是将实时数据分析任务 分解为 不同的阶段 点: 计算组件   Spout   Bolt 边: 数据流向    数据从上 ...

  8. python模块中sys.argv[]使用

    一.sys 模块 sys是Python的一个「标准库」,也就是官方出的「模块」,是「System」的简写,封装了一些系统的信息和接口. 官方的文档参考:https://docs.python.org/ ...

  9. sql注入总结(二)--2018自我整理

    0x00前言: 继上篇的内容,这章总结下二次注入,python脚本,bypass 上篇sql注入总结(一)--2018自我整理 0x01二次注入: 二次注入的原理是在把非法代码添加进数据库里面存储了, ...

  10. grpc 使用总结

    1.grpc支持多种语言,需要根据pb文件创建出相应java文件. 2.构建服务端. 3.构建客户端. 4.grpc对象基于创建者模式.