7.4.3 EL中的常量
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所示。
图7.7 奇数个单引号抛出异常
如果对单引号使用反斜杠,则会抛出如图7.8所示的异常。
图7.8 对单引号使用转义符抛出的异常
综上所述,如果在由双引号括起来的字符串中,单引号必须成对出现,而且不能对单引号使用转义符。但可以对双引号使用转义符,例如${"a\"b"}可以输出“a"b”。
对于由单引号括起来的字符串正好和双引号括起来的字符串相反,也就是说,双引号必须成对出现,而且不能对双引号使用转义符。但可以对单引号使转义符,例如${'a\'b'}可以输出“a'b”。如果违反这个规则,将抛出如图7.7或图7.8所示的异常。
5. Null常量
Null常量用于判断某个对象是否为空,该常量只有一个值,用null表示。例如,${param==null}输出的值为false(由于param是EL的内置对象,因此,param对象不可能为空)。