el表达式
概念
- 属性:jsp的内置语言,jsp翻译成servlet来执行,el同理
- 用途:
1.用于访问上下文中及其不同域中的对象,
2.取对象属性的值,
3.执行简单的运算或判断操作
4.在得到某个数据时,会自动进行数据类型的转换(转成String) - 位置:
- 代替了jsp表达式<%= %>在页面中做输出,简化了jsp表达式的使用
- 限制:
- el表达式仅仅用来读取数据,不能用来对数进行修改
- 优化
- 输出数据为null时,什么也不输出
获取操作
1.基本格式,el表达式放在{}中,并且前面有个$作为前缀
- ${… }
2.获取对象
- ${user }
- 未指定域则按照域的范围从小到大找到或者找完为止
3.获取属性
- ${user.name }
- 本质,调用getXxx方法获取值,若有get方法则有,若没有get方法会报错
- ${user[“name”] }
4.获取Map中的属性可以直接通过属性的key
- ${map.key }
- ${map[key] }
5.指定域,类似于容器。
- ${ pageScope .user}:当前页面
- ${requestScope.user}:当前请求
- ${sessionScope.user}:当前会话
- ${sessionScope.user}:当前应用
el隐含对象
- el包含11个隐含对象,由服务器创建,在对象中可以直接使用。
- pageContext和jsp中的PageContext功能一样,可以获取全部可获得对象,主要用于获取java类中的对象,例如request
请求域
-
请求域主要用于获取域对象中的属性,四个对象分别对应四个请求域
-
pageScope
-
requestScope
-
sessionScope
-
applicationScope
请求参数
- 参数对象用于获取get或post请求中的参数。
- param:获取指定请求参数,后跟参数名。
- paramValues:获取请求参数数组,返回一个string类型的数组。
其他
- header:获取请求头
- header:获取请求头信息
- initParam:获取初始化参数
- cookie:获取本地cookie信息
简单的逻辑操作
运算符 | 说明 | 范例 | 结果 |
+ | 加 | ${17+5} | 22 |
- | 减 | ${17-5} | 12 |
* | 乘 | ${17*5} | 85 |
/或div | 除 | ${17/5}或${17 div 5} | 3 |
%或mod | 取余 | ${17%5}或${17 mod 5} | 2 |
==或eq | 等于 | ${5==5}或${5 eq 5} | true |
!=或ne | 不等于 | ${5!=5}或${5 ne 5} | false |
<或lt | 小于 | ${3<5}或${3 lt 5} | true |
>或gt | 大于 | ${3>5}或${3 gt 5} | false |
<=或le | 小于等于 | ${3<=5}或${3 le 5} | true |
>=或ge | 大于等于 | ${3>=5}或${3 ge 5} | false |
&&或and | 并且 | ${true&&false}或${true and false} | false |
!或not | 非 | ${!true}或${not true} | false |
||或or | 或者 | ${true||false}或${true or false} | true |
empty | 是否为空 | ${empty “”},可以判断字符串、数据、集合的长度是否为0,为0返回true。 empty还可以与not或!一起使用。${not empty “”} | true |