目录
- EL表达式概述
- EL表达式的格式和作用
- EL表达式的运算
- EL的内置对象
- EL重点
EL概述
跳转到目录
EL(Express Lanuage)表达式可以嵌入在jsp页面内部,减少jsp脚本的编写,EL 出现的目的是要替代jsp页面中输 出脚本的编写。
EL表达式的格式和作用
跳转到目录
- EL表达式的格式:
${EL表达式内容}
相当于 ${} 替代 - EL表达式的作用:
- 从域对象中查找指定的数据。
- 内置对象使用
- 执行运算符
一、从域对象中查找指定的数据
EL中提供 域对象对应的对象
| 域对象 | EL中对应的对象 |
|---|---|
| pageContext | pageScope |
| request | requestScope |
| session | sessionScope |
| application | applicationScope |
-
使用格式
${xxxScope.keyName}
${xxxScope["keyName"]}
简化格式: ${keyName}
如果keyName都相同,依次从pageContext域,request域,session域,application域中 获取属性,在某个域中获取后 将不在向后寻找. -
EL获得普通数据
${域名称.键名}
${applicationScope.DATA_IN_APP}
${sessionScope.DATA_IN_SESSION}
${requestScope.DATA_IN_REQUEST}
${applicationScope["DATA_IN_APP"]}
${sessionScope["DATA_IN_SESSION"]}
${requestScope["DATA_IN_REQUEST"]}
${DATA_IN_APP}
${DATA_IN_SESSION}
${DATA_IN_REQUEST}
- EL获取JavaBean对象
${域名称.键名.属性名}
${USER_IN_REQUEST}
${USER_IN_REQUEST.name}
${USER_IN_REQUEST.pwd}
-
EL获取List集合对象
${域名称.键名[索引]}
${list}
${list[0]}
${list[1]}
${list[2]}
-
EL获取Map集合对象
${域名称.键名.key名称}
${域名称.键名["key名称"]}
${mapBean}
${mapBean.u1}
${mapBean.u2}
${mapBean.u3}
${mapBean.u4}
${mapBean.u1.name}-----${mapBean.u1.pwd}
${mapBean['u1'].name}-----${mapBean['u1'].pwd}
${mapBean.u3.name}-----${mapBean.u3.pwd}
${mapBean.u4.name}-----${mapBean.u4.pwd}
EL表达式的运算
跳转到目录
语法:${ 运算表达式 } , EL 表达式支持如下运算符:
- 关系运算
| 关系运算符 | 说 明 | 范 例 | 结 果 |
|---|---|---|---|
| == 或 eq | 等于 | ${ 5 == 5 } 或 ${ 5 eq 5 } | true |
| != 或 ne | 不等于 | ${ 5 !=5 } 或 ${ 5 ne 5 } | false |
| < 或 lt | 小于 | ${ 3 < 5 } 或 ${ 3 lt 5 } | true |
| > 或 gt | 大于 | ${ 2 > 10 } 或 ${ 2 gt 10 } | false |
| = 5 } 或 ${ 3 ge 5 } | false |
- 逻辑运算
| 逻辑运算符 | 说 明 | 范 例 | 结 果 |
|---|---|---|---|
| && 或 and | 与运算 | ${ 12 == 12 && 12 < 11 } 或 ${ 12 == 12 and 12 < 11 } | false |
| ll 或 or | 或运算 | ${ 12 == 12 ll 12 < 11 } 或 ${ 12 == 12 or 12 < 11 } | true |
| ! 或 not | 取反运算 | ${ !true } 或 ${not true } | false |
- 算术运算
| 算术运算符 | 说 明 | 范 例 | 结 果 |
|---|---|---|---|
| + | 加法 | ${ 12 + 18 } | 30 |
| - | 减法 | ${ 18 - 8 } | 10 |
| * | 乘法 | ${ 12 * 12 } | 144 |
| / 或div | 除法 | ${ 144 / 12 } 或 ${ 144 div 12 } | 12 |
| % 或mod | 取模 | ${ 144 % 10 } 或 ${ 144 mod 10 } | 4 |
- empoy运算符
empty运算是判断一个对象或者集合是否为空。返回boolean值。
对象为null时,返回true
如果是空的字符串,返回true
如果是空的Object数组(Object数组.length == 0),返回true
空的集合,返回true
空的map,返回true
EL的内置对象
跳转到目录
- 获取JSP中域中的数据(pageContext,pageScope,requestScope,sessionScope,applicationScope)
- 在Servlet中获得web应用的名称:
request.getContextPath(); - 在jsp页面上获得web应用虚拟目录()的名称:
${pageContext.request.contextPath}
EL表达式重点
跳转到目录
问题1:EL表达式搜索四个域对象的顺序?
问题2:如何获取一个对象中的数组元素?
问题3:如何获取一个对象中的map中的元素?
问题4:.运算和【】运算有哪些相同和不同?
问题5:pageScope,requestScope sessionScope applicationScope param分别表示什么?
