为了保持jsp页面的整洁和易于维护,jsp2.0规范中提供了EL表达式,是一种简单的数据访问语言。
1.EL表达式的语法:${ }
2.EL中的标识符:
1.不能以数字开头
2.不能以EL中的保留字开头
3.不能是EL中的隐式对象
4.不能包含单引号、双引号、减号和正斜线等特殊字符
3.EL中的保留字
and eq gt true false instanceof or ne le empty not lt ge null div mod
4.EL中的常量
1.布尔常量:true false
2.整型常量:与Java中的十进制整型常量相同,即( ----- )的整数
3.浮点数常量:与Java中的浮点数常量相同,4.9E-324 至 1.8E308之间
4.字符串常量
“\’ ”表示字面意义的单引号 “ \” ”表示字面意义的双引号 “\\ ”表示字面意义的单斜杠
5.Null常量
Null常量用于表示变量引用的对象为空,她只有一个值,用null来表示
5.EL中的运算符
1.点运算符,用于访问jsp页面中某些对象的属性
2.方括号运算符,作用与点运算符相同,但是当获取的属性名包含一些特殊符号的时候,如”—”,”?”等非数字和字符的符号的时候,使用。例如:${user[“my-name ”]}
3.算术运算符
加、减、乘、除(\ 或者 div)、求余(取模)(% 或者 mod )
4.比较运算符
比较运算符 | 说明 |
==(eq) | 等于 |
!=(ne) | 不等于 |
<(lt) | 小于 |
>(gt) | 大于 |
<=(le) | 小于等于 |
>=(ge) | 大于等于 |
5.逻辑运算符
EL表达式中的逻辑运算符用于对结果为布尔类型的表达式进行计算,运算结果仍为布尔类型
&&(and) | 与 |
||(or) | 或 |
!(not) | 非 |
6.empty运算符
empty运算符可以判定变量或表达式是否为null值或者””,
7.运算符
运算符的优先级
优先级 | 运算符 | 优先级 | 运算符 |
1 | [ ] | 6 | < > <= >= |
2 | ( ) | 7 | == != |
3 | -(-) ! empty | 8 | && |
4 | / % * | 9 | || |
5 | +(+) -(-) | 10 | ?: |
8.条件表达式
${A: B ? C}
6.El隐式对象
隐式对象名称 | 描述 |
pageContext | 对应与jsp页面的pageContext对象 |
pageScope | Page域中用于保存属性的map对象 |
requestScope | Request域中用于保存属性的map对象 |
sessionScope | Session域中用于保存属性的map对象 |
applicationScope | Application域中用于保存属性的mao对象 |
param | 一个保存了所有请求参数的map对象 |
paramValues
| 一个保存了所有请求参数的map对象,它对于某个请求参数,返回的是一个string类型数组 |
header | 一个保存了所有http请求头字段的map对象 |
headerValues | 一个保存了所有http请求头字段的map对象 返回string类型的数组 |
cookie | 用来取得使用者的cookie值,cookie的类型是map |
initParam | 保存了所有web初始化参数的map对象 |
7.自定义EL函数
(1)开发自定义EL函数,首先要有一个执行自定义函数功能的Java类,这个Java类必须定义为public 并且作为函数的方法必须声明为public static类型
(2)为了能让Java类的静态方法可以被EL表达式调用,需要在标签库描述文件(tld)中对EL自定义函数进行描述,这个tld文件需要位于WEB-INF下除了classes和Lib目录之外的任意目录,
<taglib xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd"
version="2.1">
</taglib>
(3)编写完tld文件之后,需要在jsp页面通过taglib指令导入tld文件