请选择 进入手机版 | 继续访问电脑版

湖南新梦想

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 77|回复: 0

什么是EL,它的特点及其用法

[复制链接]

19

主题

19

帖子

107

积分

注册会员

Rank: 2

积分
107
发表于 2022-8-15 19:34:26 | 显示全部楼层 |阅读模式
本帖最后由 Chemo 于 2022-8-15 19:36 编辑

什么是 EL 表达式
EL(Expression Language,表达式语言)是JSP2.0中引入的一个新内容。通过EL可以简化在JSP开发中对对象的引用,从而规范页面代码,增加程序的可读性及维护性。EL为不熟悉Java语言页面开发的人员提供了一个开发Java Web应用的新途径。


1、EL的基本语法

EL表达式语法很简单,它以“${”开头,以“}”结束,中间为合法的表达式,具体的语法格式如下:

${expression}

参数说明:

expression:用于指定要输出的内容,可以是字符串,也可以是由EL运算符组成的表达式。


技巧:由于EL表达式的语法以“${”开头,所以如果在JSP页面中要显示“${”字符串,必须在前面加上“\”符号,即“\${”,或者写成“$ {'${'}”,也就是用表达式来输出“${”符号。

1.1 通过EL输出字符串
在EL表达式中要输出一个字符串,可以将此字符串放在一对单引号或双引号内。
示例:使用EL表达式输出字符串内容。
${'pan_junbiao的博客'}
${"pan_junbiao的博客"}

1.2 通过EL访问数据
通过EL提供的“[ ]”和“.”运算符可以访问数据。通常情况下,“[ ]”和“.”运算符是等价的,可以相互代替。
访问JavaBean对象userInfo的id属性,可以写成以下两种形式:
${userInfo.id}
${userInfo["id"]}

(1)点号操作符
在使用EL时,EL表达式一般由两部分组成,如 ${userInfo.id},其中,“.”被称作点号操作符,在点号操作符左边可以是一个JavaBean对象,也可以是EL隐式对象,点号右边可以是JavaBean属性,也可以是一个映射键。

(2)[ ]操作符
如果使用EL操作数据组,则使用“.”操作符就不能进行有效的操作,这时应该使用“[ ]”,如 ${ list[0] }。但是这并不代表“[ ]”只能操作数组,“.”操作符可以操作的对象,都可以使用“[ ]”来进行操作,如 ${userInfo["id"]} ,注意使用“[ ]”操作符时,“[ ]”中必须包含有 " " 双引号(操作数组也可以写成${ list["0"] },等价于${ list[0] })。

但是也不是所有情况都可以相互替代,例如,当对象的属性名中包括一些特殊的符号(-或.)时,就只能使用“[ ]”运算符来访问对象的属性。例如,${userInfo["user-id"]} 是正确的,而 ${userInfo.user-id} 则是错误的。另外,EL的“[ ]”运算符还有一个用途,就是用来获取数组或者List集合中的数据。


2、EL的特点
EL除了具有语法简单、使用方便的特点,还具有以下特点。
(1)EL可以与JSTL结合使用,也可以与JavaScript语句结合使用。
(2)EL中会自动进行类型转换。如果想通过EL输入两个字符串型数值(例如,number1和number2)的和,可以直接通过+号进行连接(例如,${number1+number2})。
(3)EL不仅可以访问一般变量,而且还可以访问JavaBean中的属性以及嵌套属性和集合对象。
(4)在EL中可以执行算术运算、逻辑运算、关系运算和条件运算等。
(5)在EL中可以获得命名空间(PageContext对象,它是页面中所有其它内置对象的最大范围的集成对象,通过它可以访问其它内置对象)。
(6)在使用EL进行除法运算时,如果0作为除数,则返回无穷大Infinity,而不返回错误。
(7)在EL中可以访问JSP的作用域(request、session、application以及page)。
(8)扩展函数可以与Java类的静态方法进行映射。


3、与低版本的环境兼容——禁用EL
如今EL已经是一项成熟、标准的技术,只要安装的Web服务器能够支持Servlet 2.4/JSP 2.0,就可以在JSP页面中直接使用EL。由于在JSP2.0以前版本中没有EL,所以JSP为了和以前的规范兼容,还提供了禁用EL的方法。JSP中提供了3种禁用EL的方法。

如果在使用EL时,其内容没有被正确解析,而是直接将EL内容原样显示到页面中,包括$和{},则说明Web服务器不支持EL,那么就需要检查一下EL有没有被禁用。

3.1 使用斜杠“\”符号
使用斜杠符号是一种比较简单的禁用EL的方法。该方法只需要在EL的起始标记“${”前加上“\”符号,具体的语法如下:
\${expression}
说明:该语法适合只是禁用页面的一个或几个EL表达式的情况。

3.2 使用page指令
使用JSP的page指令也可以禁用EL表达式,其具体的语法格式如下:
<%@ page isELIgnored="布尔值" %>
参数说明:
isELIgnored属性:用于指定是否禁用页面中的EL,如果属性值为true,则忽略页面中的EL,否则将解析页面中的EL。
示例:如果要忽略页面中的EL,可以在页面的顶部添加一下代码:
<%@ page isELIgnored="true" %>
说明:该方法适合禁用一个JSP页面中的EL。

3.3 在web.xml文件中配置<el-ignored>元素
在web.xml文件中配置<el-ignored>元素可以实现禁用服务器中的EL。

4、保留的关键字
同Java一样,EL也有自己的保留关键字,在为变量命名时,应该避免使用这些关键字,包括在使用EL输出已经保存在作用域范围内的变量,也不能使用关键字,如果已经定义了,那么需要修改为其它的变量名。EL的保留关键字如下表所示。
and            eq          gt
instanceof        div         or
le             false        empty
not            lt          ge

5、EL的运算符
EL可以访问数据运算符、算术运算符、关系运算符、逻辑运算符、条件运算符及empty运算符等。

5.1 在EL中进行算术运算
在EL中,也可以进行算术运算,同Java语言一样,EL提供了加、减、乘、除和求余5种算术运算符,各运算符及其用法,如下表所示。

运算符        功能        示例        结果
+        加        ${19+1}        20
-        减        ${66-30}        36
*        乘        ${52.1*10}        521.0
/或div        除        ${5/2}或${5 div 2}        2.5
${9/0}或${9 div 0}        Infinity
%或mod        求余        ${17%3}或${17 mod 3}        2
${15%0}或${15 mod 0}        将抛出异常:java.lang.ArithmeticException: / by zero

5.2 在EL中判断对象是否为空
在EL中,判断对象是否为空,可以通过empty运算符实现,该运算符是一个前缀(prefix)运算符,即empty运算符位于操作数前方,用来确定一个对象或变量是否为null或空。empty运算符的格式如下:
${empty expression}
参数说明如下:
expression:用于指定要判断的变量或对象。

全部内容请看链接转载:

https://blog.csdn.net/pan_junbiao/article/details/88567466






回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|湖南新梦想 ( 湘ICP备18019834号-2 )

GMT+8, 2022-9-28 04:47 , Processed in 0.041565 second(s), 19 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表