港岛妹妹,你献给我的西班牙馅饼
甜蜜地融化了我
港岛妹妹,我们曾拥有的甜蜜的爱情
疯狂地撕裂了我


核心标签库

核心标签是最常用的JSTL标签。引用核心标签库的语法如下:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
标签      描述
<c:out>     用于在JSP中显示数据,就像<%= ... >
<c:set>     用于保存数据
<c:remove>  用于删除数据
<c:catch>   用来处理产生错误的异常状况,并且将错误信息储存起来
<c:if>  与我们在一般程序中用的if一样
<c:choose>  本身只当做<c:when>和<c:otherwise>的父标签
<c:when>    <c:choose>的子标签,用来判断条件是否成立
<c:otherwise>   <c:choose>的子标签,接在<c:when>标签后,当<c:when>标签判断为false时被执行
<c:import>  检索一个绝对或相对 URL,然后将其内容暴露给页面
<c:forEach>     基础迭代标签,接受多种集合类型
<c:forTokens>   根据指定的分隔符来分隔内容并迭代输出
<c:param>   用来给包含或重定向的页面传递参数
<c:redirect>    重定向至一个新的URL.
<c:url>     使用可选的查询参数来创造一个URL

更多标签库:http://www.runoob.com/jsp/jsp-jstl.html

UserInfo.java

//package com.jstl;public class UserInfo {private String name="";public String getName() {return name;}public void setName(String name) {this.name = name;}
}
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body><!-- -----c:out------- --><c:out value="水平线标记<hr>" escapeXml="true"></c:out><br><!-- escapeXml="true"会将字符符号转换为实体代码 --><c:out value="水平线标记<hr>" escapeXml="false"></c:out><!-- -----c:set------- --><c:set var="username" value="默默" scope="request"></c:set><c:out value="username的值为:${username} "/><br><jsp:useBean id="userInfo" class="com.jstl.UserInfo"/><c:set target="${userInfo}" property="name">过火</c:set><c:out value="UserInfo的name的值为:${userInfo.name} "/><!-- -----c:set------- -->
</body>
</html>

<c:if>条件判断标签

<c:if test="condition" var="name" [scope="范围"]>

test 属性: 必选属性,指定条件表达式,可以使用 EL 表达式。
var 属性: 可选属性,用于指定变量名,该变量用于保存 test 属性的判断结果。
scope 属性: 指定变量的范围,默认为 page ,可选值有 page、request、session和application

循环标签

JSTL 标签库中包含<c:forEach><c:forTokens>两个循环。

<:forEach>循环标签

<:forEach>循环标签可以根据循环条件,遍历数组和集合类的所有或部分数据。

这些标签封装了Java中的for,while,do-while循环。
相比而言,<c:forEach>标签是更加通用的标签,因为它迭代一个集合中的对象。
<c:forTokens>标签通过指定分隔符将字符串分隔为一个数组然后迭代它们。

<c:forEach items="<object>"[begin="<int>"][end="<int>"][step="<int>"][var="<string>"][varStatus="<string>"]>标签体</c:forEach>

<c:forEach>标签有如下属性:

属性 描述 是否必要 默认值
items 要被循环的信息,多用于数组和集合类,可以通过EL指定
begin 开始的元素(0=第一个元素,1=第二个元素) 0
end 最后一个元素(0=第一个元素,1=第二个元素) Last element
step 每一次迭代的步长 1
var 代表当前条目的变量名称
varStatus 指定循环状态的变量名称,有4个状态属性

变量 类型 描述
index int 当前循环的索引值,从0开始
count int 当前循环的循环计数,从1开始
first boolean 是否为第一次循环
last boolean 是否为最后一次循环

示例1

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<c:forEach var="i" begin="1" end="5">Item <c:out value="${i}"/><p>
</c:forEach>
</body>
</html>
Item 1Item 2Item 3Item 4Item 5

示例2

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<%@ page import="java.util.*"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>遍历List集合</title>
</head>
<body><%List<String> list = new ArrayList<String>(); //创建List集合的对象list.add("简单是可靠的先决条件"); //向List集合中添加元素list.add("兴趣是最好的老师");list.add("知识上的投资总能得到最好的回报");request.setAttribute("list", list); //将List集合保存到request对象中%><b>遍历List集合的全部元素:</b><br><c:forEach items="${requestScope.list}" var="keyword" varStatus="id">${id.index }&nbsp;:${keyword}<br></c:forEach><b>遍历List集合中第1个元素以后的元素(不包括第1个元素):</b><br><c:forEach items="${requestScope.list}" var="keyword" varStatus="id"begin="1">${id.index }&nbsp;:${keyword}<br></c:forEach><b>更改 id.index 为 id.count</b><br><c:forEach items="${requestScope.list}" var="keyword" varStatus="id">${id.count }&nbsp;:${keyword}<br></c:forEach>
</body>
</html>
遍历List集合的全部元素:
0 :简单是可靠的先决条件
1 :兴趣是最好的老师
2 :知识上的投资总能得到最好的回报
遍历List集合中第1个元素以后的元素(不包括第1个元素):
1 :兴趣是最好的老师
2 :知识上的投资总能得到最好的回报
更改 id.index 为 id.count 1 :简单是可靠的先决条件
2 :兴趣是最好的老师
3 :知识上的投资总能得到最好的回报

${id.index}
<c:forEach>循环中,var 属性指定的变量,只在循环体中有效。

示例3

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>应用&lt;c:forEach&gt;列举10以内全部奇数</title>
</head>
<body>
<b>10以内的全部奇数为:</b>
<c:forEach var="i" begin="1" end="10" step="2">${i}&nbsp;&nbsp;
</c:forEach>
</body>
</html>
10以内的全部奇数为: 1   3   5   7   9   

示例4

<td style="padding:5px;">&nbsp;${BorrowForm.bookBarcode}></td>
.
.
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ page import="com.actionForm.BorrowForm"%>
<%
BorrowDAO borrowDAO=new BorrowDAO();
Collection coll_book=(Collection)borrowDAO.bookBorrowSort();
request.setAttribute("coll_book", coll_book);
%>
<!-- coll_book是从数据库查询后的结果,集合类保存的BorrowForm对象,BorrowForm是一个JavaBean,图书信息类
c:forEach的item是待遍历的集合coll_book, var就是存储item指定的对象的成员
记得引入BorrowForm的路径
-->
.
.
<table width="95%"  border="1" cellpadding="0" cellspacing="0" bordercolor="#FFFFFF" bordercolordark="#B7B6B6" bordercolorlight="#FFFFFF"><tr align="center"><td width="5%" height="25">排名</td><td width="10%">图书条形码</td><td width="24%">图书名称</td><td width="10%">图书类型</td><td width="10%">书架</td><td width="14%">出版社</td><td width="11%">作者</td><td>定价(元)</td><td>借阅次数</td></tr><c:forEach items="${coll_book}" var="BorrowForm"varStatus="status"><tr><td height="25" align="center">${status.index+1}</td><td style="padding:5px;">&nbsp;${BorrowForm.bookBarcode}></td><td style="padding:5px;">${BorrowForm.bookName}</td><td style="padding:5px;">${BorrowForm.bookType}</td><td align="center">&nbsp;${BorrowForm.bookcaseName}</td><td align="center">&nbsp;${BorrowForm.pubName}</td><td width="11%" align="center">${BorrowForm.author}</td><td width="8%" align="center">${BorrowForm.price}</td><td width="8%" align="center">${BorrowForm.degree}</td></tr></c:forEach></table>

<:forTokens>循环标签

<c:forTokens>标签与<c:forEach>标签有相似的属性,不过<c:forTokens>还有另一个属性:

属性 描述 是否必要 默认值
delims 指定分隔字符串的分隔符

实例

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<title>c:forTokens 标签实例</title>
</head>
<body>
<c:forTokens items="google,你好啊冒号:runoob,taobao;分号" delims=", : ;" var="name"><c:out value="${name}"/><p>
</c:forTokens>
</body>
</html>
google
你好啊冒号
runoob
taobao
分号

delims=", : ;" 里可以指定一个或多个分隔符,如 delims=", "

JSTL 标签库c:if :forEach :forTokens相关推荐

  1. JSTL标签库 | 深入解析JSTL标签库

    目录 一:深入解析JSTL标签库 1.什么是JSTL标签库 2.使用JSTL标签库的步骤 3.JSTL标签的原理 4.jstl中的核心标签库core当中常用的标签 一:深入解析JSTL标签库 1.什么 ...

  2. JavaWeb(五)之JSTL标签库

    前言 前面介绍了EL表达式,其实EL表达式基本上是和JSTL核心标签库搭配一起使用才能发挥效果的.接下来让我们一起来认识一下吧! 在之前我们学过在JSP页面上为了不使用脚本,所以我们有了JSP内置的行 ...

  3. javaweb学习总结(二十八)——JSTL标签库之核心标签

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

  4. Struts标签、Ognl表达式、el表达式、jstl标签库这四者之间的关系和各自作用

    来自:http://blog.csdn.net/love_you_99/article/details/8184797 一 介绍 1.Struts2的作用 Struts2标签库提供了主题.模板支持,极 ...

  5. spring mvc学习(37):JavaEE-JSP基础-EL表达式和JSTL标签库(Taglibs)

    EL表达式和JSTL标签库: 在JSP页面代替java代码,便于编写 一.EL表达式 作用: ${} 简化脚本表达式 <%= %> j2ee1.4以前版本需指定<%@ page is ...

  6. 学会怎样使用Jsp 内置标签、jstl标签库及自定义标签

    学习jsp不得不学习jsp标签,一般来说,对于一个jsp开发者,可以理解为jsp页面中出现的java代码越少,对jsp的掌握就越好,而替换掉java代码的重要方式就是使用jsp标签.  jsp标签的分 ...

  7. JAVA Web基础6-EL表达式与JSTL标签库

    一.EL表达式语言 1.EL表达式全称expression language,用于在JSP页面获取其内置对象的内容 语法:${...} 在jsp中page指令有一个属性是isELIgnored, 用来 ...

  8. EL表达式和JSTL标签库使用

    EL表达式 介绍: EL(Expression Language)  目的:为了使JSP写起来更加简单. 表达式语言的灵感来自于 ECMAScript 和 XPath 表达式语言,它提供了在 JSP ...

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

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

最新文章

  1. javaweb jsp
  2. 趣学python3(38)--多项式最小二乘法拟合
  3. 叉乘点乘混合运算公式_初中数学学不会?公式这样记,让你做题效率翻倍!
  4. 牛顿儿时成绩很差,5岁开始接触物理,也许是他如此伟大的唯一原因!
  5. 微信对账单 java_微信支付对账,你是如何处理的?
  6. request payload怎么发_做了一个个人博客,但不知道怎么介绍
  7. SpringBoot 手写过滤器amp;加载第三方过滤器
  8. Python 测试驱动开发读书笔记(二)使用unittest框架扩展功能测试
  9. 2018网易校招前端笔试考后总结
  10. android 磁盘日志记录,GitHub - xflyandroid/XLog: 一个简易的日志打印框架(支持打印策略自定义,默认提供2种策略:logcat打印和磁盘打印)...
  11. 阿里云公司简介介绍资料
  12. 卸载vs2015社区版本然后装vs2015专业版本出现问题ActivityLog.xml错误
  13. clustMD r语言_R语言聚类分析-层次聚类分析
  14. 北京交通大学计算机仿真大作业直流调速系统仿真,北京交通大学电气工程学院计算机仿真大作业.docx...
  15. 如何做好IT战略规划与IT咨询!
  16. 分享一下我用Python接单的个人经历
  17. HLG 1916 小Z的卡片 (set 难题)恏似系亚洲区噶题
  18. stm32封装库官网下载方法 bxl下载
  19. 微信春节大数据出炉:《三体》阅读量第一 ;曝iOS 17应用商店将向第三方开放;斯坦福大学推出DetectGPT|极客头条
  20. 戴尔t420服务器显示器无信号,显示器无信号的原因及解决方法

热门文章

  1. F2FS源码分析-1.6 [F2FS 元数据布局部分] Segment Summary Area-SSA结构
  2. 消费心理学(04):价格锚点
  3. vue table自定义样式
  4. 机器学习-吃瓜教程(西瓜书+南瓜书)-神经网络
  5. 一,java虚拟机概述(什么是java虚拟机,为什么会产生java虚拟机,java虚拟机解决了什么问题)
  6. MapX研究——MapX核心技术剖析(五)
  7. python抠图精确到发丝_ps抠图有一些发丝怎么扣
  8. Visio画图几个技巧
  9. matlab中生成随机正交矩阵
  10. 【转】西门子数控系统中MMC、PCU、NCU、CCU简略介绍