6. EL 表达式:${运算表达式}
文章目录
- EL 表达式
- 1)什么是EL表达式,EL:表达式的作用?
- 2)EL表达式搜索域数据的顺序
- 3)EL表达式输出Bean的普通属性,数组属性。List集合属性,map集合属性
- EL表达式——运算
- 1)关系运算
- 2)逻辑运算
- 3)算数运算
- 4)empty运算
- 5) 三元运算
- 6) "."点运算和[]中括号运算符
- EL表达式的11个隐含对象
- 1)EL获取四个特定域中的属性
- 2)pageContext对象的使用
- 3)其他
EL 表达式
1)什么是EL表达式,EL:表达式的作用?
- EL表达式的全称是:Expression Language。 是表达式语言。
- EL表达式的什么作用:代替jsp页面中的表达式脚本在jsp页面中进行数据的输出。
- EL表达式在输出数据的时候,要比jsp的表达式脚本要简洁很多。
EL表达式的格式是: ${表达式}
EL表达式在输出null值的时候 ,输出的是空串。jsp表达式脚本输出null 值的时候,输出的是null 字符串。
2)EL表达式搜索域数据的顺序
- EL表达式主要是在jsp页面中输出数据。
- 主要是输出
域对象(指是域能够存储数据的对象 )
中的数据。 - 当四个域中都有相同的key的数据的时候,EL表达式会按照四个域(
pageContext
、request
、session
、application
)的从小到大的顺序去进行搜索,找到就输出。
3)EL表达式输出Bean的普通属性,数组属性。List集合属性,map集合属性
底层代码: EL表达式是通过属性 (不论是否有该属性)的get方法获得的值
EL表达式——运算
语法: ${运算表达式},EL 表达式支持如下运算符:
1)关系运算
关系运算符 | 说明 | 范例 | 结果 |
---|---|---|---|
==或eq | 等于 | $ { 5==5 } 或 $ { 5eq5 } | true |
!=或ne | 不等于 | $ { 5!=5 } 或 $ { 5ne5 } | false |
<或It | 小于 | $ { 3<5 } 或 $ { 3lt5 } | true |
>或gt | 大于 | $ { 2>10 } 或 $ { 2gt10 } | false |
<=或le | 小于等于 | $ { 5<=12 } 或 $ { 5le12 } | true |
>=或ge | 大于等于 | $ { 3>=5 } 或 $ { 3ge5 } | false |
2)逻辑运算
逻辑运算符 | 说明 | 范例 | 结果 |
---|---|---|---|
&&或and | 与运算 | ${12==12 && 12<11 } 或 $ {12 ==12 and 12<11 } | false |
或 or | 或运算 | ${12==12 | |
!或not | 取反运算 | ! t r u e 或 { !true}或 !true或{not true } | false |
3)算数运算
算数运算符 | 说明 | 范例 | 结果 |
---|---|---|---|
+ | 加法 | $ {12+ 18 } | 30 |
- | 减法 | $ {18- 8} | 10 |
* | 乘法 | $ {12*12 } | 144 |
/或div | 除法 | $ { 144/12 } 或 $ { 144div12 } | 12 |
%或mod | 取模 | $ { 144%10 } 或 $ { 144mod10 } | 4 |
4)empty运算
<%
//1.值为null值的时候,为空
request. setAttribute( "emptyNu1l", null);//2、值为空串的时候,为空
request. setAttribute("emptyStr", "");//3,值是Object类型数组,长度为零的时候
request. setAttribute(”emptyArr", new 0bject[]{});//4、list集合,元素个数为零
List<String> list = new ArrayList<>();
//list. add("abc ");
request. setAttribute("emptyList", list);//5,map集合,元素个数为零
Map<String,object> map = new HashMap<String, 0bject>();
map. put( "key1", "value1");
request. setAttribute(" emptyMap", map);
%>${ empty emptyNull } <br/>
${ empty emptyStr } <br/>
${ empty emptyArr } <br/>
${ empty emptyList } <br/>
${ empty emptyMap } <br/>
结果:
5) 三元运算
表达式1?表达式2:表达式3
如果表达式1的值为真,返回表达式2的值,如果表达式1的值为假,返回表达式3的值。
6) "."点运算和[]中括号运算符
- 点运算,可以输出Bean对象中某个属性的值。
- [ ]中括号运算,可以输出有序集合中某个元素的值。并且[ ]中括号运算,还可以输出map集合中key里含有特殊字符的key的值。
<%Map<String, object> map = new HashMap<String, object>();map.put("a.a.a", "aaaValue");map. put( "b+b+b", "bbbValue") ;map. put("c-c-c","cccValue");request. setAttribute( s: "map", map);
%>${ map['a.a.a'] } <br>
${ map["b+b+b"] } <br>
${ map['c-c-c'] } <br>
EL表达式的11个隐含对象
EL个达式中11个隐含对象,是EL表达式中自己定义的,可以直接使用。
变量 | 类型 | 作用 |
---|---|---|
pageContext | PageContextlmpl | 它可以获取jsp中的九大内置对象 |
pageScope | Map<String,Object> | 它可以获取pageContext域中的数据 |
requestScope | Map<String,Object> | 它可以获取Request域中的数据 |
sessionScope | Map<String,Object> | 它可以获取Session域中的数据 |
applicationScope | Map<String,Object> | 它可以获取ServletContext域中的数据 |
param | Map<String,String> | 它可以获取请求参数的值 |
paramValues | Map<String,String[ ]> | 它也可以获取请求参数的值,获取多个值的时候使用。 |
header | Map<String,String> | 它可以获取请求头的信息 |
headerValues | Map<String,String[ ]> | 它可以获取请求头的信息,它可以获取多个值的情况 |
cookie | Map<String,Cookie> | 它可以获取当前请求的Cookie信息 |
initParam | Map<String,String> | 它可以获取在web.xml中配置的上下文参数 |
1)EL获取四个特定域中的属性
2)pageContext对象的使用
3)其他
6. EL 表达式:${运算表达式}相关推荐
- java位运算符和位运算表达式
java位运算符和位运算表达式 > 右移 x>>a X各比特位右移a位 << 左移 X< >> 不带符号的右移 x>>>a X各比特位 ...
- 字符串转运算表达式条件表达式
字符串转运算表达式 public class runString {public static void main(String[] args) {ScriptEngine jse = new Scr ...
- 力扣- -241.为运算表达式设计优先级
力扣- -241.为运算表达式设计优先级(分治算法) 文章目录 力扣- -241.为运算表达式设计优先级(分治算法) 一.题目描述 二.分析 三.代码 四.优化 一.题目描述 二.分析 看到这道题的第 ...
- Django运算表达式与Q对象/F对象
Django运算表达式与Q对象/F对象 1 模型查询 概述: 1 查询集:表示从数据库中获取的对象的集合 2 查询集可以有多个过滤器,通过 逻辑运算符连接 3 过滤器就是一个函数,基于所给的参数限制查 ...
- 微信小程序基础而重要语法整理总结(数据绑定、运算表达式、循环渲染、条件渲染、事件绑定(传参))
目录 数据绑定 运算表达式 循环渲染 条件渲染 事件绑定(传参) 首先对初始化后的小程序目录进行梳理(图来自某机构) 补充: sitemap配置:小程序根目录下的sitemap. json文件用来配置 ...
- c语言复合运算,C语言中复合赋值运算,表达式等知识(DOC可编).doc
C语言中复合赋值运算,表达式等知识(DOC可编).doc 3.1复合赋值运算 算术运算符"+ - * / %"和赋值运算符"="结合起来,形成复合赋值运算符.如 ...
- c语言复合赋值表达式题目,C语言中复合赋值运算,表达式等知识.doc
C语言中复合赋值运算,表达式等知识.doc 3.1复合赋值运算 算术运算符"+ - * / %"和赋值运算符"="结合起来,形成复合赋值运算符.如下所示:+= ...
- 241. 为运算表达式设计优先级
241. 为运算表达式设计优先级 给定一个含有数字和运算符的字符串,为表达式添加括号,改变其运算优先级以求出不同的结果.你需要给出所有可能的组合的结果.有效的运算符号包含 +, - 以及 * . 示例 ...
- 四则混合运算表达式分析程序的原理及其实现
意义: 四则混合运算表达式可以看作一定语言中的表达式分析及求值,虽然它很小,却是一个语法分析的很好的例子! 一.目标:可以对输入的四则混合运算表达式进行分析,并求出其结果.程序须支持:整数及小数运算. ...
最新文章
- pandas使用groupby函数计算dataframe数据中每个分组的N个数值的滚动计数个数(rolling count)、例如,计算某公司的多个店铺每N天(5天)的滚动销售额计数个数
- java类的运行顺序_Java语言类的基本运行顺序
- R语言:再谈REmap包
- YOLOv3中Loss
- 甘肃关于领取软考2021年上半年合格证书的通知
- Visio 方向工程连接 Oracle 10G
- 如何看待自己写的烂代码
- 2021-2025年中国制冷机行业市场供需与战略研究报告
- android字符串点击事件,Android匹配字符串高亮并设置点击事件
- VS2010中配置OpenGL的一些问题小结
- python html5 便利店收银系统_简单又好用的便利店收银系统
- 第九届蓝桥杯大赛青少年创意编程 SCRATCH 初级组试题解析
- 企业微信SCRM怎么弄永久群二维码?可以实现社群私域流量裂变吗?
- kiv8测量方法_measure_测量 | measure_Scikit image_参考手册_非常教程
- 7月31日 细雨霏霏 不是我的泪
- win7家庭版桌面没有计算机图标,Win7 home basic家庭普通版显示桌面图标的方法
- 什么是数据中心核心交换机?与普通交换机有什么区别?
- ImageMagick将图片转为渐进式jpeg(progressive jpeg)
- Specified VM install not found: type Standard VM, name jre7
- JAVA WEB DAY 16_ 综合案例-联系人管理系统
热门文章
- 校园表白墙搭建教程及源码分享-麻木博客
- 1-2月份不良与垃圾信息举报:垃圾邮件占36.5%
- 幼儿园体育游戏电子计算机教案,幼儿园体育游戏教案范文(精选5篇)
- 微信程序开发.小程序入门
- 【博学谷学习记录】超强总结,用心分享 | 架构师 Mybatis源码学习总结
- 【POJ 1286】Necklace of Beads(polya定理)
- 学术不端网查重靠谱吗_学术不端网安全吗?查重过程是怎样的?
- AuToCAD启动自定义加载程序研究(转)
- 智能井盖时刻守护井盖安全,为智慧城市建设添彩
- mysql 递归函数with recursive的用法