简介
EL(expression Language)表达式让jsp书写起来更加方便,简化在jsp获取作用域或者请求数据的写法,也会搭配jstl使用。
jsp页面获取数据的方式
传统法式:在jsp页面中使用java的脚本语段<%%>
缺点:jsp页面需要导包,获取到对象类型数据时需要进行强转,获取数据的代码比较麻烦。
EL表达式:获取 作用域(request,session,pageContext,application)中的数据若找到数据则获取返回,否则无任何效果不报错,不能获取jsp页面简单的变量
使用方法
语法结构:${expression},提供.和[ ]两种运算符来存储数据
作用
a).使用EL表达式获取请求数据
i. 获取用户请求数据
ii. 获取请求头数据
iii. 获取cookie数据
b).使用EL表达式获取作用域数据
i. 获取作用域数据
ii. 作用域查找顺序
iii. 指定作用域中的数据
c).使用EL表达式进行运算
i. 算数运算
ii. 关系运算
iii. 逻辑运算
d).使用EL表达式空值判断empty
EL表达式
1.获取请求数据 request.getParameter("uname") <=> ${param.uname}
2.获取Str request.getAttribute("uname") <=> ${uname}
3.获取对象 (User)request.getAttribute("u").getUname() <=> ${u.uname}
4.获取list列表对象 (ArrayList)request.getAttribute("userList").get(1).getUname <=> ${userLIst[1].uname}
EL作用域查找顺序
默认查找顺序:pageContext–>request–>session–>application 适用于当多个作用域中有相同的键名
自定义查找顺序表达方法:${作用域名Scope.键名} 例${requestScope.uname}
注意:pageContext简写为page
EL的逻辑运算
- 逻辑运算:${逻辑表达式} && || !
- 算数运算:${算数运算} + - * /
- 关系运算表达式:${关系运算表达式} > < >= <= == != %
- 特殊:三目运算 ${sex==1?‘男’:‘女’}
- 注意不可以使用"+"连接字符串,实用的话会报错
EL的空值判断
${empty 键名} 判断键名中是否存在数据
EL获取请求头数据和cookie数据
请求头数据
- ${header} --> 获取所有请求头数据
- ${header[“键名”]} --> 获取指定键名请求头数据
- ${headerValues[“键名”]} --> 获取同键不同值得数组
请求头数据
- ${cookie} --> 返回所有cookie对象的map集合
- ${cookie.键名} --> 返回指定的cookie对象
- ${cookie.键名.name} --> 返回指定的cookie对象存储数据的键名
- ${cookie.键名.value} --> 返回指定的cookie对象存储数据的值
学习过程中的积累,有任何问题欢迎指教!