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& ...
随机推荐
- Oracle死锁查询及批量处理
一.数据库死锁的现象程序在执行的过程中,点击确定或保存按钮,程序没有响应,也没有出现报错. 二.死锁的原理当对于数据库某个表的某一列做更新或删除等操作,执行完毕后该条语句不提交,另一条对于这一列数据做 ...
- Java实现二叉树先序,中序,后序,层次遍历
一.以下是我要解析的一个二叉树的模型形状.本文实现了以下方式的遍历: 1.用递归的方法实现了前序.中序.后序的遍历: 2.利用队列的方法实现层次遍历: 3.用堆栈的方法实现前序.中序.后序的遍历. . ...
- Grape简介
什么是Grape Grape是Ruby中的一个类REST API框架,被设计用于运行在Rack上或弥补已有的web应用框架(比如Rails或者Sinatra),Grape提供了一个简单的DSL用于方便 ...
- CentOS 6.7 下 PostgreSQL 9.5 的安装与配置
#yum方式安装(不同的系统版本对应的版本也不同) yum install postgresql-server #安装指定版本 yum install https://download.postgre ...
- JVM 运行时数据区详解
一.运行时数据区 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同数据区域. 1.有一些是随虚拟机的启动而创建,随虚拟机的退出而销毁,所有的线程共享这些数据区. 2.第二种则 ...
- 摆脱定时任务的cron表达式的困扰
一.背景 最近因为需要,需要适用Spring的task定时任务进行跑定时任务,以前也接触过,但是因为懒没有好好地理解@Scheduled的cron表达式,这次便对它做了一个全方位的了解和任务,记录下来 ...
- Spring Cloud 使用 FeignClient 启动报错
我们首先来看一下报错信息 Description: Field businessFeignClient in com.ysc.service.BusinessConfigService require ...
- Charles抓包之HTTPS抓包配置
访问我的博客 前言 由于工作中经常需要配置客户端开发人员对接接口,有时候对接地不太顺利,因此需要经常性地对公司 APP 进行抓包看请求,找出具体的原因. 在公司中开发使用的 Windows 台式电脑, ...
- Spring总结 4.AOP之为对象添加新功能
Spring除了提供增强原有功能的方法外,还提供了为一个对象引入新功能的方法.如下: package cn.powerfully.service; public interface IService ...
- win10 磁盘占用高--- 禁用用户改善反馈 CompatTelRunner.exe
1. 2.右键点开[这台电脑],点[管理],点[服务和应用程序]点[服务],在右边框里把[superfetch] [windows search][HomeGroupListener] [HomeGr ...