7.4.3 EL中的常量

优质
小牛编辑
141浏览
2023-12-01

EL中的常量又称字面量(Literal)。常是是不可改变的数据。在EL中有以下几种类型的常量:

1. 布尔(Boolean)类型常量

布尔常量只有两个值:true和false。该常量可用在条件判断中,也可以在EL表达式中直接输出,如${true}将输出true。

2. 整数(Integer)类型常量

整型常量和Java的十进制的整型常量(被声明为final的变量)的取值范围相同。也就是说,整型常量的取值范围在Long.MIN_VALUE和Long.MAX_VALUE之间。

3. 浮点(Floating point)类型常量

浮点类型常量的Java的双精度浮点类型常量的取值范围相同,取值范围在Double.MIN_VALUE和Double.MAX_VALUE之间。

4. 字符串(String)类型常量

字符串常量是由单引号或双引号括起来的一连串字符。由于字符串常量需要使用单引号或双引号括起来,所以如果字符串中包含单引号或双引号,就需要使用反斜杠(\)进行转义,如果字符串中包含有反斜杠,也需要使用反斜杠来进行转义,例如,“\\”表示字符串中的反斜杠。

如果字符串是被双引号括起来的,则单引号不需要转换,但单引号要成对出现,如${"a'b'c"},如果单引号个数为奇数,则会抛出如图7.7所示。

07

图7.7 奇数个单引号抛出异常

如果对单引号使用反斜杠,则会抛出如图7.8所示的异常。

08

图7.8 对单引号使用转义符抛出的异常

综上所述,如果在由双引号括起来的字符串中,单引号必须成对出现,而且不能对单引号使用转义符。但可以对双引号使用转义符,例如${"a\"b"}可以输出“a"b”。

对于由单引号括起来的字符串正好和双引号括起来的字符串相反,也就是说,双引号必须成对出现,而且不能对双引号使用转义符。但可以对单引号使转义符,例如${'a\'b'}可以输出“a'b”。如果违反这个规则,将抛出如图7.7或图7.8所示的异常。

5. Null常量

Null常量用于判断某个对象是否为空,该常量只有一个值,用null表示。例如,${param==null}输出的值为false(由于param是EL的内置对象,因此,param对象不可能为空)。