EL表达式
1 基本概念
EL(Expression Language)表达式提供了在JSP中简化表达式的方法,可以方便地访问各种数据 并输出
2 主要功能
依次访问pageContext、request、session和application作用域对象存储的数据
获取请求参数值
访问Bean对象的属性
访问集合中的数据
输出简单的运算结果
3 访问内置对象的数据
(1)访问方式
<%=request.getAttribute(“ varName”)%>
用EL实现: ${ varName }
以前的方式:

现在的方式:

例子2 - 属性名都一样

例子2 - 输出结果
输出了pageContext对象中的属性值,原因见下图
(2)执行流程

4 访问请求参数(从前台页面传过来的)的数据
在EL之前
request.getParameter(name);
request.getParameterValues(name);
在EL中
param:接收的参数只有一个值
paramValues:接受的参数有多个值
<!-- 获取指定参数的数值 -->
${param.name}
<!-- 获取指定参数中指定下标的数值 -->
${paramValues.hobby[0]}
例子

以前的方式:

现在的方式:

5 访问Bean对象的属性
(1)访问方式
方式一: $ { 对象名 . 属性名 },例如:${user.name}
方式二: $ { 对象名 [“属性名”] },例如:${user["name"]}
(2)主要区别
属性名中包含一些特殊字符,如: . 或 ,等并非字母或数字的符号,就一定要使用 [ ] , 而不是.的方式
使用[]的方式可以动态取值,具体方式如下:
<%
request.setAttribute(“prop”,“age”);
%>
<!-- 相当于表达式中写一个变量 -->
${ user[prop] }
(3) 例子
1 - 创建Bean (Person类)

2 - 设置 & 获取 Bean 中的数据



例子2 - 动态取值


6 访问集合中的数据
(1) 方法
<!-- student为ArrayList类型的对象 -->
${student[0].name}
(2) 例子
例子1

例子2

7 常用的内置对象
| 类别 | 标识符 | 描述 |
| JSP | pageContext | PageContext 处理当前页面(的数据) |
| 作用域 | pageScope | Map类,同页面作用域,属性名称和值有关 |
| requestScope | Map类,同请求作用域,属性名称和值有关 | |
| sessionScope | Map类,同会话作用域,属性名称和值有关 | |
| applicationScope | Map类,同应用程序作用域,属性名称和值有关 | |
| 请求参数 | param | Map类,根据名称存储(前端页面带过来的)请求参数的值 |
| paramValues | Map类,把请求参数的所有值作为一个String数组来存储 | |
| 请求头 | header |
Map类,根据名称存储请求头主要值 |
| headerValues | Map类,把请求头的所有值作为一个String数组来存储 | |
| Cookie | cookie | Map类,根据名称存储请求附带的cookie |
| 初始化参数 | initParam | Map类,根据名称存储Web应用程序上下文初始化参数 |
8 常用的运算符
(1)常用的算术运算符
| 算术运算符 | 说 明 | 范 例 | 运算结果 |
| + | 加 | ${1+2} | 3 |
| - | 减 | ${2-1} | 1 |
| * | 乘 | ${2*3} | 6 |
| / 或 div | 除 | ${16/5}或${16div5} | 3.2 |
| % 或 mod | 取余 | ${16%5}或${16mod5} | 1 |
例子

(2)常用的关系运算符
| 关系运算符 | 说 明 | 范 例 | 运算结果 |
| ==或eq | 等于 | ${1==2}或${1 eq 2} | false |
| != 或ne | 不等于 | ${2!=1}或${1 ne 2} | true |
| < 或lt | 小于 | ${2<3}或${2 lt 3 } | true |
| > 或 gt | 大于 | ${16>5}或${16 gt 5} | true |
| <= 或 le | 小于等于 | ${16<=5}或${16 le 5} | false |
| >= 或 ge | 大于等于 | ${16>=5}或${16 ge 5} | true |
(3)常用的逻辑运算符
| 逻辑运算符 | 说 明 | 范 例 | 运算结果 |
| && 或 and | 与运算 | ${true&&true}或${true and true} | true |
| || 或or | 或运算 | ${true||false}或${true or false} | true |
| ! 或not | 非运算 | ${!true}或${not true } | false |
例子
(4)条件运算符
${条件表达式? 语句1 : 语句2}
(5)验证运算符
${empty 表达式}
返回布尔值判断表达式是否为"空"值,null值、无元素的集合或数组、长度为零的String被认为是空值。
例子:


浙公网安备 33010602011771号