EL表达式 https://www.cnblogs.com/zhouguanglin/p/8117406.html
EL(Expression Language) 是为了使JSP写起来更加简单。表达式语言的灵感来自于 ECMAScript 和 XPath 表达式语言,它提供了在 JSP 中简化表达式的方法,让Jsp的代码更加简化
JSP中的注释(<%-- 内容 -- %>),指令(<%@ 指令名 %>),脚本(<% 脚本 %>),表达式(<%= 赋值结果 %>),声明(<%! 声明 %>),动作(<jsp:useBean />)
C标签
首先需要引入标签库和jar包
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
1.基本语法:${标识符}
2.基本运算符:
empty运算符:检查对象是否为null(空)
二元表达式:${user!=null?“yes” :"no"}
3.常用标签
标签 |
描述 |
用于在JSP中显示数据,就像<%= ... > |
|
用于保存数据 |
|
用于删除数据 |
|
用来处理产生错误的异常状况,并且将错误信息储存起来 |
|
与我们在一般程序中用的if一样 |
|
本身只当做<c:when>和<c:otherwise>的父标签 |
|
<c:choose>的子标签,用来判断条件是否成立 |
|
<c:choose>的子标签,接在<c:when>标签后,当<c:when>标签判断为false时被执行 |
|
检索一个绝对或相对 URL,然后将其内容暴露给页面 |
|
基础迭代标签,接受多种集合类型 |
|
根据指定的分隔符来分隔内容并迭代输出 |
|
用来给包含或重定向的页面传递参数 |
|
重定向至一个新的URL. |
|
使用可选的查询参数来创造一个URL |
一.条件运算符
${user.gender==1?'男':'女'}
二.if()
<c:if test="${2>1}">code..</c:if>
code会在test属性为true时执行
三.if()-else{}
<c:choose>
<c:when test="${2>1}">code..</c:when>
<c:otherwise>code..</c:otherwise>
</c:choose>
四.if()-else if()-else{}
<c:choose>
<c:when test="${2>1}">code..</c:when>
<c:when test="${2>3}">code..</c:when>
<c:otherwise>code..</c:otherwise>
</c:choose>
五.<c:forEach>标签具有以下一些属性:
l var:迭代参数的名称。在迭代体中可以使用的变量的名称,用来表示每一个迭代变量。类型为String。
l items:要进行迭代的集合。对于它所支持的类型将在下面进行讲解。
l varStatus:迭代变量的名称,用来表示迭代的状态,可以访问到迭代自身的信息。
l begin:如果指定了items,那么迭代就从items[begin]开始进行迭代;如果没有指定items,那么就从begin开始迭代。它的类型为整数。
l end:如果指定了items,那么就在items[end]结束迭代;如果没有指定items,那么就在end结束迭代。它的类型也为整数。
l step:迭代的步长。
支持Java中的Map、List、Set、Iterator(迭代器)、Enumeration(枚举类型)、数组、用逗号定界的String(分割后的子字符串)、Result(SQL查询所获得的行)对List的取值
1.使用${list1[1]}获取值
2.使用jstl的<forEach>标签取值
<c:forEach items="${list}" var="item">
<c:out value="${item}"></c:out>
</c:forEach>
4、获得web开发常用对象
EL表达式语言中定义了11个隐含对象,使用这些隐含对象可以很方便地获取web开发中的一些常见对象,并读取这些对象的数据。
语法:${隐式对象名称}:获得对象的引用
序号 |
隐含对象名称 |
描 述 |
1 |
pageContext |
对应于JSP页面中的pageContext对象(注意:取的是pageContext对象。) |
2 |
pageScope |
代表page域中用于保存属性的Map对象 |
3 |
requestScope |
代表request域中用于保存属性的Map对象 |
4 |
sessionScope |
代表session域中用于保存属性的Map对象 |
5 |
applicationScope |
代表application域中用于保存属性的Map对象 |
6 |
param |
表示一个保存了所有请求参数的Map对象 |
7 |
paramValues |
表示一个保存了所有请求参数的Map对象,它对于某个请求参数,返回的是一个string[] |
8 |
header |
表示一个保存了所有http请求头字段的Map对象,注意:如果头里面有“-” ,例Accept-Encoding,则要header[“Accept-Encoding”] |
9 |
headerValues |
表示一个保存了所有http请求头字段的Map对象,它对于某个请求参数,返回的是一个string[]数组。注意:如果头里面有“-” ,例Accept-Encoding,则要headerValues[“Accept-Encoding”] |
10 |
cookie |
表示一个保存了所有cookie的Map对象 |
11 |
initParam |
表示一个保存了所有web应用初始化参数的map对象 |
格式化标签
JSTL格式化标签用来格式化并输出文本、日期、时间、数字。引用格式化标签库的语法如下
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
标签 |
描述 |
使用指定的格式或精度格式化数字 |
|
解析一个代表着数字,货币或百分比的字符串 |
|
使用指定的风格或模式格式化日期和时间 |
|
解析一个代表着日期或时间的字符串 |
|
绑定资源 |
|
指定地区 |
|
绑定资源 |
|
指定时区 |
|
指定时区 |
|
显示资源配置文件信息 |
|
设置request的字符编码 |
SQL标签
JSTL SQL标签库提供了与关系型数据库(Oracle,MySQL,SQL Server等等)进行交互的标签。引用SQL标签库的语法如下:
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>
标签 |
描述 |
指定数据源 |
|
运行SQL查询语句 |
|
运行SQL更新语句 |
|
将SQL语句中的参数设为指定值 |
|
将SQL语句中的日期参数设为指定的java.util.Date 对象值 |
|
在共享数据库连接中提供嵌套的数据库行为元素,将所有语句以一个事务的形式来运行 |