JavaWeb——EL表达式

一、EL表达式简介
 EL表达式(Expression Language),是一种表达式语言。JSP的后期版本(2.0以后)是不允许使用脚本片段 <% %> 以及JSP表达式<%=%>的,使用EL表达式来代替JSP表达式,使用标签来代替脚本片段。EL表达式用于在页面中输出一个对象,EL可以直接将域中的对象在页面中输出。

二、基本语法
 语法格式:${表达式}
 EL可以用来做全域查找:四个域(pageScope、requestScope、sessionScope、applicationScope)
 使用方式:${属性名},会自动的按照由小到大的顺序从四个域(pageContext、request、session、application)中查找指定属性,哪个先找到则返回哪个,如果没找到不会出现null,而是返回一个空串
Tip
  1️⃣EL表达式只能读取域中的对象
  2️⃣在EL表达式中不能直接调用对象的方法
  3️⃣通过EL表达式来读取一个对象时,可以直接${对象.属性名},EL表达式会自动调用该属性对应的getter方法获取属性值
  4️⃣EL支持级联调用:${requestScope.stu.address.street}

 EL中给我们提供了4个域对象——pageScope、requestScope、sessionScope、applicationScope,EL默认会按照由小到大的顺序从四个域对象中查找属性值,我们也可以指定从哪个域对象中查找:

${pageScope.key}
${requestScope.key}
${sessionScope.key}
${applicationScope.key}

 使用EL表达式时如果遇到特殊的属性名还可以使用如下方式获取属性值:${xxxScope[‘属性名’]}

${requestScope['Hello-Kitty']}

 可以直接通过EL表达式获取域中的JavaBean的指定属性:${对象.属性.属性},EL表达式会自动调用对象的get方法来获取指定的属性值,而不是调用类的属性。

${requestScope.stu.address.street}

三、EL中的隐含对象
 EL中给我们提供了11个隐含对象,我们可以在EL表达式中直接使用这11个对象,这11个隐含对象中,除了pageContext剩下的全都是Map:

隐含对象类型作用
pageContextPageContext和JSP中的pageContext一样,可以获取到JSP中其他隐含对象
pageScopeMap<String,Object>获取page域中的属性
requestScopeMap<String,Object>获取request域中的属性
sessionScopeMap<String,Object>获取session域中的属性
applicationScopeMap<String,Object>获取application域中的属性
paramMap<String,String>可以获取到用户发送的请求参数
paramValuesMap<String,String[]>可以获取到一个参数对应的多个值
headerMap<String,String>可以获取到用户发送的请求头
headerValuesMap<String,String[]>可以获取到一个请求头对应的多个值
initParamMap<String,String>获取到整个WEB应用的初始化参数
cookieMap<String,Cookie>获取到浏览器的Cookie信息

四、EL中的运算
 在EL中可以直接使用常用的运算符进行 + - * / 运算
 empty运算符:可用于三目运算,用来判断一个域中的对象是否为空,empty运算符检查一个null的对象时,会返回true,检查一个空串时,也会返回true,检查一个空的集合时,也会返回true,只有检查的对象有实质的内容或对象不为null时才返回false。
我们常用empty运算符判断一个集合是否为一个空集合,或者一个字符串是否为一个空串。使用方式:${empty 属性名}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值