EL表达式语言

来源:互联网 发布:淘宝怎么搞 编辑:程序博客网 时间:2024/05/17 09:34

1.语法:

EL表达式的格式都是以“${”开始,以“}”结尾的。当EL表达式中的变量不给定范围时,则表示容器会默认地从page范围中查找,然后再依次在request,session,application范围内查找。如果在此过程中找到,则直接返回,否则返回null

下面是EL使用到的变量属性范围的名称

page属性:在EL中使用名称pageScope

request属性:在EL中使用名称requestScope

session属性:在EL中使用名称sessionScope

application属性:在EL中使用名称applicationScope

           EL中包含的文字

JSP表达式语言(EL)定义了可以在表达式中使用的文字包括:

Boolean:true和false

Integer:与JAVA类似,可以包含任何正数或负数

Floating Point:与JAVA类似,可以包含任何正的或者负的浮点数

String:任何由引号或者双引号限定的字符串。对于单引号、双引号和反斜杠,使用反斜杠字符“\”作为转义序列。必须注意,如果在字符串两端使用双引号,则内部的单引号不需要转义

NULL:返回null

           运算符“[]”和“.”

在EL中,可以使用运算符“[]”和”.”来取得对象的属性。另外在EL中可以使用[]运算符来读取Map,List或者对象集合中的数据

           EL中的基本算术运算符

JSP中的表达式语言(EL)提供了如下多个运算符,其中大部分是Java中常用的运算符

算术运算符

说明

+

“加法”操作

-

“减法”操作

*

“乘法”操作

/或者div

“除法”操作

%或者mod

“求余”操作

1.3.1 “+”、“-”和“*”:A+B、A-B、A*B

u如果A和B同为NULL时,返回0

u如果A和B其中有一个为Float、Double或者包含了“.”、“e”或者“E”字符的字符串,则强行把A和B转换成Double类型,其中有3中情况

l 运算符为“+”时,返回A.add(B)

l 运算符为“-”时,返回A.subtract(B)

l 运算符为“*”时,返回A.multiply(B)

 

u否则,强行把A和B转为Long类型,然后再执行相应的     运算

u如果运算操作出现异常,则报错

1.3.2 “/”或者div运算符:A/B或者A div B

u如果A和B同为Null,则返回0

u否则,强行把A和B转换成Double类型,然后再执行相应的运算

u如果运算操作出现异常,则报错

1.3.3 “%”或者“mod”运算符:A%B或者A mod B

u如果A和B 同时为NULL,则返回0

u如果A 或者B其中一个为Float、Double或者包含“.”、”e”或者“E”字符的字符串,则强行把A和B 转换成Double类型,然后再进行相应的运算

u否则,强行把A和B 转换成Long类型,然后再执行相应运算

u如果运算操作出现异常,则报错

1.3.4 一元负号运算符:-A

u如果A 为NULL,则返回0

u如果A 为一个字符串,则分如下几种情况:

l 如果这个字符串包含“.”、“e”或者“E“字符传,则把A强行转换成Double类型,然后在执行相应操作

l 否则,强行把A转换成Long类型,然后在执行相应运算

l 如果运算操作出现异常,则报错

u如果A是一个Byte、Short、Integer、Long、Float或者Double类型时,同样可能出现两种情况:

l 直接按照原来的类型执行相应的运算

l 如果出现操作异常,则报错

u否则,出现异常并报错

           EL中的关系运算符

EL中使用的关系运算包括如下6中:

关系运算符

说明

==或者eq

“等于“判断

!=或者ne

“不等于“判断

<或者lt

“小于“判断

>或者gt

“大于“判断

<=或者le

“小于等于“判断

>=或者ge

“大于等于“判断

1.4.1 A{<或者lt、>或者gt、<=或者le、>=或者ge}B

u如果A等于B时,运算符为”<=”或者”le”、”>=”或者”ge”,则返回true。否则,运算符为”<”或者”lt”、”>”或者”gt”时,返回false

u如果A 为Null,或者B为Null,则返回false

u如果A或者B是Float或者Double类型,则强行把A和B转换成Double类型,然后在执行相应的运算符

u如果A或者B是Byte,Short,Character、Integer或者Long类型时,则强行把A和B转换成Long,然后执行相应的运算符

u如果A或者B是一个字符串,则强行把A和B全都转换成字符串,然后再执行相应的比较运算

u如果用A进行比较,存在两种情况:

l 若A.compareTo(B)产生异常,则报错

l 否则,返回A.compareTo(B)的比较结果

u如果用B进行比较,也存在两种情况:

l 若B.compareTo(A)产生异常,则报错

l 否则,返回B.compareTo(A)的比较结果

u否则,产生异常并报错

1.4.2 A{==或者eq、!=或者ne}B运算符

u如果A等于B,运算符为”= =”或者”eq”时,返回true;否则,运算符为”!=”或者”ne”是,返回false

u如果A为NULL或者B为NULL时,则运算符”= =”或者”eq”,返回fasle;如果运算符是”!=’或者”ne”,则返回true

u如果A或者B是Float或者Double类型,则强行把A和B转换成Double类型,然后再执行相应的运算符

u如果A或者B是Byte、Short、Character、Integer或者Long类型时,则强行把A和B转换成Long类型,然后再执行相应的运算符

u如果A或者B是Boolean类型,则强行把A和B转换成Boolean类型之后再执行相应的运算符

u如果A或者B是字符串类型,则强行把A和B转换成字符串类型,在进行两者之间的比较

u如果在执行A.equals(B)时产生异常,则报错;否则返回比较结果

           逻辑运算符

逻辑运算符包含一下几种:

逻辑运算符

说明

&&或者and

“与”运算符

||或者or

“或”运算符

!或者not

“非”运算符

1.5.1 A{&&或者and、||或者or}B逻辑操作

       执行该运算符时,首先强行把A和B转换成Boolean类型,然后在执行相应的运算符

u如果A和B同为true,当运算符为”&&”时,返回true;运算符为”||”时,返回true。

u如果A和B其中一个为true,另一个为false,当运算符为”&&”时,返回false;运算符为”||”时,返回true

u如果A和B同为false,当运算符为”&&”时,返回false;运算符为”||”时,返回false

u否则,执行过程产生异常并报错

1.5.2 “非“运算符:!A

      执行该运算符时,首先强行把A和B转换成Boolean类型,然后再执行“非“或者”反“操作

u如果A判断为false,则执行”!”操作之后返回结果true

u如果A判断为true,则执行”!”操作之后返回结果false

u否则,执行过程发生异常并报错

           empty运算符

“empty”运算符是一个前缀形式的运算符,它用来判断某个变量是否为NULL或者为空

“empty”运算符的运算规则如下:

u如果A为NULL,则返回true

u否则,如果A是一个空的字符串,则返回true

u否则,如果A是一个空的数组,则返回true

u否则,如果A是一个空的Map集合类,则返回true

u否则,如果A是一个空的List集合类,则返回true

u否则,返回false

           其他运算符

条件运算符

EL中还可以使用以下形式的条件运算符:

${A?B:C}

其中A 为判断表达式,当A为true时,返回B表达式的执行结果;如果A为false,则返回C表达式执行之后的结果

2.     EL中的隐含对象

EL中的隐含对象与JSP中的隐含对象,其实只有一个对象是它们两者所共有的,即pageContext对象。这样EL也可以访问到JSP中的其他隐含对象,这是因为pageContext对象拥有访问JSP中所有其他8个隐含对象的权限。

EL中的隐含对象

类别

隐含对象

描述

JSP

pageContext

当前JSP页面的javax.servlet.jsp.PageContext对象

作用域

pageScope

页面范围内所有对象的集合

requestScope

所有请求范围内的对象集合

sessionScope

所有会话范围内的对象集合

applicationScope

应用程序范围内的对象变量组成的集合

请求参数

param

所有请求参数字符串组成的集合

paramValues

所有作为字符串集合的请求参数

 

header

HTTP请求头部,字符串

 

headerValues

HTTP请求头部,字符串集合

cookie

cookie

所有cookie组成的集合

初始化参数

initParam

全部应用程序参数名组成的集合

 

原创粉丝点击