JSTL、JSTL核心标签库——流程处理标签
JSTL环境
JSTL是另一个标准规范,并非在JSP的规范中,所以必须另外下载JSTL实现。
要使用JSTL标签库,必须在JSP网页上使用taglib指示元素定义前置名称与uri参考。例如,引入JSTL1.1核心标签库:
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
JSTL分类
JSTL提供的标签库分为五个大类。
1、核心标签库:提供条件判断、属性访问、URL处理及错误处理等标签。
2、I18N兼容格式标签库:提供数字、日期等的格式化功能,以及区域(Locale)、信息、编码处理等国际化功能的标签。
3、SQL标签库:提供基本的数据库查询、更新、设置数据源(DataSource)等功能的标签,这会在第9章说明JDBC时再介绍。
4、XML标签库:提供XML解析、流程控制、转换等功能的标签。
5、函数标签库:提供常用字串处理的自定义EL函数标签库。
核心标签库
1、<c:if test="">标签 特别要注意,是test属性,而不是text属性。
<%@page contentType="text/html" pageEncoding="UTF-8" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Hello</title>
</head>
<body>
<c:if test="${param.name == 'zs' and param.passwd == '123'}">
欢迎 ${param.name} 登陆
</c:if>
</body>
</html>
index.jsp
测试:127.0.0.1/index.jsp?name=zs&passwd=123
响应:欢迎 zs 登陆
2、<c:if>标签没有与之相对应的<c:else>标签,要使用<c:choose>、<c:when>及<c:otherwise>才可以。
<c:choose>中可以有多个<c:when>标签,会从上往下进行测试。如果有个<c:when>标签的test运算结果为true就输出内容,之后的<c:when>就不会做测试。如果所有<c:when>测试都不成立,则会输出<c:otherwise>的内容。
<%@page contentType="text/html" pageEncoding="UTF-8" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Hello</title>
</head>
<body>
<c:choose>
<c:when test="${param.index == 1}">
欢迎 ${param.name} 超级用户登陆
</c:when>
<c:when test="${param.index == 2}">
欢迎 ${param.name} 管理员登陆
</c:when>
<c:when test="${param.index == 3}">
欢迎 ${param.name} VIP登陆
</c:when>
<c:otherwise>
欢迎 ${param.name} 游客登陆
</c:otherwise>
</c:choose>
</body>
</html>
index.jsp
测试:http://127.0.0.1/index.jsp?name=Mike&index=1
响应:欢迎 Mike 超级用户登陆
3、<c:forEach>标签
<c:forEach>标签的items属性可以是数组、Collection、Iterator、Enumeration、Map与字符串。
<%@page contentType="text/html" pageEncoding="UTF-8" import="java.util.List, java.util.ArrayList" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
List<String> cities = new ArrayList<String>();
cities.add("东京");
cities.add("北京");
cities.add("纽约");
cities.add("伦敦");
session.setAttribute("cities", cities);
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Hello</title>
</head>
<body>
<table>
<c:forEach items="${cities}" var="city">
<tr>
<td>${city}</td>
</tr>
</c:forEach>
</table>
</body>
</html>
index.jsp
测试:http://127.0.0.1/index.jsp
响应:
| 东京 |
| 北京 |
| 纽约 |
| 伦敦 |
如果items指定的是Map,则设置给var的对象会是Map.Entry,这个对象有getKey()与getValue()方法,可以让你取得键与值。例如:
<%@page contentType="text/html" pageEncoding="UTF-8" import="java.util.Map, java.util.HashMap" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
Map<String, String> cities = new HashMap<String, String>();
cities.put("日本", "东京");
cities.put("中国", "北京");
cities.put("美国", "纽约");
cities.put("英国", "伦敦");
session.setAttribute("cities", cities);
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Hello</title>
</head>
<body>
<table>
<c:forEach items="${cities}" var="city">
<tr>
<td>${city.key}</td>
<td>${city.value}</td>
</tr>
</c:forEach>
</table>
</body>
</html>
index.jsp
如果items指定的是字符串,则必须是个以逗号区隔的值,<c:forEach>会自动以逗号来切割字符串,例如:
<%@page contentType="text/html" pageEncoding="UTF-8" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
session.setAttribute("cities", "东京, 北京, 纽约, 伦敦");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Hello</title>
</head>
<body>
<table>
<c:forEach items="${cities}" var="city">
<tr>
<td>${city}</td>
</tr>
</c:forEach>
</table>
</body>
</html>
index.jsp
如果希望自行指定切割依据,则可以使用<c:forTokens>,例如:
<%@page contentType="text/html" pageEncoding="UTF-8" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
session.setAttribute("cities", "东京|北京|纽约|伦敦");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Hello</title>
</head>
<body>
<table>
<c:forTokens items="${cities}" var="city" delims="|" >
<tr>
<td>${city}</td>
</tr>
</c:forTokens>
</table>
</body>
</html>
index.jsp
JSTL、JSTL核心标签库——流程处理标签的更多相关文章
- 学会怎样使用Jsp 内置标签、jstl标签库及自定义标签
学习jsp不得不学习jsp标签,一般来说,对于一个jsp开发者,可以理解为jsp页面中出现的java代码越少,对jsp的掌握就越好,而替换掉java代码的重要方式就是使用jsp标签. jsp标签的分 ...
- jstl--->Core 核心标签库->流程控制
jstl--->Core 核心标签库->流程控制 -->if.choose.when.otherwise <c:if>条件判断 语法1:没有本体内容 <c:if ...
- jsp的标签库和自定义标签
1.jstl标签库 JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能. JSTL支持通用的.结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签,SQL标签. ...
- ThinkPHP内置标签库原理(Cx标签库)
任何一个模板引擎的功能都不可能是为你量身定制的,具有一个良好的可扩展 机制也是模板引擎的另外一个考量,Smarty采用的是插件方法来实现扩展,ThinkTemplate由于采用了标签库技术,比Smar ...
- Javaweb学习笔记——(十三)——————JSTL、JSTL核心标签库、自定义标签、有标签体的标签、带有属性的标签、MVC、Javaweb三层框架
JSTLApache提供的标签库 jar包:jstl-1.2.jar,如果传MyEclipse,他会在我们导入jar包,无需自己导入,如果没有使用MyEclipse那么需要自行导入.--------- ...
- JSTL标签库中fmt标签,日期,数字的格式化
首先介绍日期的格式化:(不要嫌多哦) JSTL格式化日期(本地化) 类似于数字和货币格式化,本地化环境还会影响生成日期和时间的方式. <%@ page pageEncoding="UT ...
- 【JSTL】JSTL标签库的常用标签
一.JSTL技术 1.JSTL概述 JSTL(JSP Standard Tag Library),JSP标准标签库,可以嵌入在jsp页面中使用标签的形式完成业务逻辑等功能.jstl出现的目的同el一样 ...
- 小峰servlet/jsp(7)jstl国际化标签库、sql标签库等
一.jstl国际化标签库: fmt:setLocale 设定用户所在的区域: fmt:formatDate 对日期进行格式化 fmt:requestEncoding 设置所有的请求编码; fmt: ...
- jsp页面使用EL表达式 使用Jstl标签库中的标签,需要引入jstl.jar和standard.jar
spring boot 中使用jstl 首先在pom中加入 <dependency> <groupId>jstl</groupId> <artifactId& ...
随机推荐
- java.lang.ClassCastException: java.math.BigDecimal cannot be cast to java.lang.String错误的解决方法
mmobjectid是在Oracle数据库中对应的是Number类型的,在JavaBean中定义的是Long类型的. List<BigDecimal> mmobjidAllFromMars ...
- Scala使用Akka模拟RPC机制代码
上代码: 另一个版本(自己加注释):http://www.cnblogs.com/DreamDrive/p/6740440.html RemoteMessage.scala trait Remote ...
- 在Postgresql中添加新角色(Role)
Postgresql安装完成之后,默认会创建名为postgres的用户.角色(Role)和数据库(Database).而使用你自己原有的用户运行psql时会提示错误. bob@localhost:~$ ...
- Android面试题(2)
1. int 和 Integer 有什么区别 Java 提供两种不同的类型:引用类型和原始类型(或内置类型).Int是java的原始数据类型,Integer是java为int提供的封装类.Java为 ...
- Deep learning with Python 学习笔记(6)
本节介绍循环神经网络及其优化 循环神经网络(RNN,recurrent neural network)处理序列的方式是,遍历所有序列元素,并保存一个状态(state),其中包含与已查看内容相关的信息. ...
- Eclipse 处理 IOConsole Updater 报错
上篇博文说了如何处理 Eclipse Console打印不自动删除问题, 而不让日志自动删除后会报错:IOConsole Updater 重复的刷屏,一会之后,就会出现IOConsole Update ...
- Mac添加命令别名
1. 切换到用户主目录 $ cd 2. 编辑或新建.bash_profile文件 3. 添加别名 命令别名设置语法: alias [别名]='[指令名称]' 注意:等号两边均无空格,指令名称中如有空格 ...
- CATransaction(参考其他博客敲)
#import "ViewController.h" @interface ViewController () @property(nonatomic,strong)CALayer ...
- [转]webpack4.0.1安装问题和webpack.config.js的配置变化
本文转自:https://blog.csdn.net/jiang7701037/article/details/79403637 The CLI moved into a separate packa ...
- MVC应用程序JsonResult()的练习
这次学习MVC应用程序,尝试使用jQuery的获取数据,并显示于视图上,关键技术还是javascript的一个子集Json.我们先去HomeController写一个方法JsonResult GetJ ...