文章目录

  • 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表达式会按照四个域(pageContextrequestsessionapplication)的从小到大的顺序去进行搜索,找到就输出。

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 表达式:${运算表达式}相关推荐

  1. java位运算符和位运算表达式

    java位运算符和位运算表达式 > 右移 x>>a X各比特位右移a位 << 左移 X< >> 不带符号的右移 x>>>a X各比特位 ...

  2. 字符串转运算表达式条件表达式

    字符串转运算表达式 public class runString {public static void main(String[] args) {ScriptEngine jse = new Scr ...

  3. 力扣- -241.为运算表达式设计优先级

    力扣- -241.为运算表达式设计优先级(分治算法) 文章目录 力扣- -241.为运算表达式设计优先级(分治算法) 一.题目描述 二.分析 三.代码 四.优化 一.题目描述 二.分析 看到这道题的第 ...

  4. Django运算表达式与Q对象/F对象

    Django运算表达式与Q对象/F对象 1 模型查询 概述: 1 查询集:表示从数据库中获取的对象的集合 2 查询集可以有多个过滤器,通过 逻辑运算符连接 3 过滤器就是一个函数,基于所给的参数限制查 ...

  5. 微信小程序基础而重要语法整理总结(数据绑定、运算表达式、循环渲染、条件渲染、事件绑定(传参))

    目录 数据绑定 运算表达式 循环渲染 条件渲染 事件绑定(传参) 首先对初始化后的小程序目录进行梳理(图来自某机构) 补充: sitemap配置:小程序根目录下的sitemap. json文件用来配置 ...

  6. c语言复合运算,C语言中复合赋值运算,表达式等知识(DOC可编).doc

    C语言中复合赋值运算,表达式等知识(DOC可编).doc 3.1复合赋值运算 算术运算符"+ - * / %"和赋值运算符"="结合起来,形成复合赋值运算符.如 ...

  7. c语言复合赋值表达式题目,C语言中复合赋值运算,表达式等知识.doc

    C语言中复合赋值运算,表达式等知识.doc 3.1复合赋值运算 算术运算符"+ - * / %"和赋值运算符"="结合起来,形成复合赋值运算符.如下所示:+= ...

  8. 241. 为运算表达式设计优先级

    241. 为运算表达式设计优先级 给定一个含有数字和运算符的字符串,为表达式添加括号,改变其运算优先级以求出不同的结果.你需要给出所有可能的组合的结果.有效的运算符号包含 +, - 以及 * . 示例 ...

  9. 四则混合运算表达式分析程序的原理及其实现

    意义: 四则混合运算表达式可以看作一定语言中的表达式分析及求值,虽然它很小,却是一个语法分析的很好的例子! 一.目标:可以对输入的四则混合运算表达式进行分析,并求出其结果.程序须支持:整数及小数运算. ...

最新文章

  1. pandas使用groupby函数计算dataframe数据中每个分组的N个数值的滚动计数个数(rolling count)、例如,计算某公司的多个店铺每N天(5天)的滚动销售额计数个数
  2. java类的运行顺序_Java语言类的基本运行顺序
  3. R语言:再谈REmap包
  4. YOLOv3中Loss
  5. 甘肃关于领取软考2021年上半年合格证书的通知
  6. Visio 方向工程连接 Oracle 10G
  7. 如何看待自己写的烂代码
  8. 2021-2025年中国制冷机行业市场供需与战略研究报告
  9. android字符串点击事件,Android匹配字符串高亮并设置点击事件
  10. VS2010中配置OpenGL的一些问题小结
  11. python html5 便利店收银系统_简单又好用的便利店收银系统
  12. 第九届蓝桥杯大赛青少年创意编程 SCRATCH 初级组试题解析
  13. 企业微信SCRM怎么弄永久群二维码?可以实现社群私域流量裂变吗?
  14. kiv8测量方法_measure_测量 | measure_Scikit image_参考手册_非常教程
  15. 7月31日 细雨霏霏 不是我的泪
  16. win7家庭版桌面没有计算机图标,Win7 home basic家庭普通版显示桌面图标的方法
  17. 什么是数据中心核心交换机?与普通交换机有什么区别?
  18. ImageMagick将图片转为渐进式jpeg(progressive jpeg)
  19. Specified VM install not found: type Standard VM, name jre7
  20. JAVA WEB DAY 16_ 综合案例-联系人管理系统

热门文章

  1. 校园表白墙搭建教程及源码分享-麻木博客
  2. 1-2月份不良与垃圾信息举报:垃圾邮件占36.5%
  3. 幼儿园体育游戏电子计算机教案,幼儿园体育游戏教案范文(精选5篇)
  4. 微信程序开发.小程序入门
  5. 【博学谷学习记录】超强总结,用心分享 | 架构师 Mybatis源码学习总结
  6. 【POJ 1286】Necklace of Beads(polya定理)
  7. 学术不端网查重靠谱吗_学术不端网安全吗?查重过程是怎样的?
  8. AuToCAD启动自定义加载程序研究(转)
  9. 智能井盖时刻守护井盖安全,为智慧城市建设添彩
  10. mysql 递归函数with recursive的用法