6. EL 表达式:${运算表达式}

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表达式中自己定义的,可以直接使用。

变量类型作用
pageContextPageContextlmpl它可以获取jsp中的九大内置对象
pageScopeMap<String,Object>它可以获取pageContext域中的数据
requestScopeMap<String,Object>它可以获取Request域中的数据
sessionScopeMap<String,Object>它可以获取Session域中的数据
applicationScopeMap<String,Object>它可以获取ServletContext域中的数据
paramMap<String,String>它可以获取请求参数的值
paramValuesMap<String,String[ ]>它也可以获取请求参数的值,获取多个值的时候使用。
headerMap<String,String>它可以获取请求头的信息
headerValuesMap<String,String[ ]>它可以获取请求头的信息,它可以获取多个值的情况
cookieMap<String,Cookie>它可以获取当前请求的Cookie信息
initParamMap<String,String>它可以获取在web.xml中配置的上下文参数

1)EL获取四个特定域中的属性

在这里插入图片描述

2)pageContext对象的使用

在这里插入图片描述

3)其他

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你说的白是什么白_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值