Java高手速成 | EL表达式语言
创始人
2024-05-22 13:10:52
0

 本文主要讲解EL表达式语言的作用、基本语法以及运算符。

01、EL的作用

当需要在JSP页面显示变量以及JavaBean对象时,可以使用JSP的表达式,如<%=变量%>的形式,也可以直接使用如<%out.println(变量)%>的Java输出语句。尤其当JSP页面从后台接收较多对参数并显示的时候,此时页面将会混杂大量的Java代码。JSP作为表示层,主要负责内容的显示,如果夹杂过多的Java代码,不利于页面的设计与维护。

因此,在JSP2.0规范中增加了EL(Expression Lanuage,表达式语言),与普通的JSP表达式以及out对象一样,EL可以用于在JSP页面中进行数据的输出显示。此外EL还具备功能强大的运算符功能,可以进行数值以及逻辑运算,能够更为灵活地访问普通变量、JavaBean对象以及集合。相比于Java代码,EL更为直观、简洁,不仅能够减少页面的代码量,也更容易被前端设计人员所理解,方便网页的设计与维护,提高开发效率。

02、EL基本语法

EL的原理与JSP表达式的类似,都是通过JSP容器解释执行后,在浏览器中显示表达式的结果。EL默认是直接在JSP页面中开启的,可以通过page指令的isElIgonred属性设置JSP页面是否能使用EL。isElIgonred的默认值为false,表示开启EL,ture表示关闭。

EL的语法格式为${Expression}。其中,花括号{}里面的表达式可以使用各种运算符,以方便地显示各类数据。假设通过Servlet处理完业务流程后,返回一个商品goods的JavaBean对象,跳转到JSP页面中显示其商品名称,需要使用如下Java代码。

Goods goods=(Goods)request.getAttribute("goods");
String gname=goods. getGname();
out.println("gname");

 而如果使用EL,只需要代码如下:

${requestScope.goods.gname}

 很显然,使用EL要更加简洁,同时也很容易被理解。

03、EL定义的基本运算符

为了更好地进行数据的读取,EL定义了存取、算数、关系、逻辑、条件、empty等运算符,本文将对这些运算符的使用方法进行介绍。

1. .和[]存取运算符

EL可以使用两种数据读取的运算符:.(点运算符)和[]。第一节使用.运算符对商品名称进行读取,在这里也可以使用[]运算符进行读取。编写代码如下所示。

${requestScope.goods["gname"]}

下面3种情况必须使用[]运算符,而不能使用.运算符。

(1) 属性名称中包含特殊字符的情况。

特殊字符包括数字、横线、下画线等,此时只能使用[]运算符。例如,假设goods有一个属性名称为goods_count,其代码就只能写成如下形式。

${requestScope.goods["goods_count"]}

(2) 属性名称为动态取值的情况。

如果属性名称中包含变量时,就只能使用[]运算符。例如:

String attribute;//attribute可能取值"gname","gprice"或者"gid"
${requestScope.goods[attribute]}

(3) 获取数组中的元素的情况。

 假设使用以下语句将定义的数组保存到request中。

String goodsArray[]={"小米10","华为P30","红米K30Pro"};
request.setAttribute("goodsArray",goodsArray);

那么,在JSP页面中只能通过[]运算符依次读取数组中的各元素。

${requestScope. goodsArray [0]}
${requestScope. goodsArray [1]}
${requestScope. goodsArray [2]}

2. 算数运算符

EL定义的算数运算符如表1所示。算数运算符可以进行一些简单的运算比较,进而帮助实现逻辑判断功能。

■ 表1EL定义的算数运算符

3. 关系运算符

EL定义的关系运算符如表2所示。

■ 表2EL定义的关系运算符

在使用两个变量进行关系运算比较时,应采用${变量1==变量2}的形式,而不是${变量1}=${变量2}。

4. 逻辑运算符

EL定义的逻辑运算符如表3所示。

■ 表3EL定义的逻辑运算符

5. 条件运算符

条件运算符的基本语法为${A?B:C},表示当满足条件A时,表达式的值为B;否则,表达式的值为C。例如${2>5?1:0}的值为0。

6. empty运算符

empty运算符用于判断数据是否为空,语法格式如下:

${empty A}

empty运算符的规则:当A的值为null,或者A不存在,或者A为空字符串,或者A为空数组时,均返回为true;否则返回false。

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
一帆风顺二龙腾飞三阳开泰祝福语... 本篇文章极速百科给大家谈谈一帆风顺二龙腾飞三阳开泰祝福语,以及一帆风顺二龙腾飞三阳开泰祝福语结婚对应...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...