EL 关系运算符
EL 关系运算符有以下六个运算符 (见表6-7):
表6-7
关系运算符 说 明 范 例 结 果
= = 或 eq 等于 ${ 5 = = 5 } 或 ${ 5 eq 5 } true
!= 或 ne 不等于 ${ 5 != 5 } 或 ${ 5 ne 5 } false
< 或 lt 小于 ${ 3 < 5 }或 ${ 3 lt 5 } true
> 或 gt 于 ${ 3 > 5 }或 ${ 3 gt 5 } false
<= 或 le 小于等于 ${ 3 <= 5 }或 ${ 3 le 5 } true
>= 或 ge 于等于 ${ 3 >= 5 }或 ${ 3 ge 5 } false
注意
在使用EL 关系运算符时,不能够写成:
${param.password1} = = ${param.password2}
或者
${ ${param.password1 } = = ${ param.password2 } }
而应写成
${ param.password1 = = param.password2 }
EL逻辑运算符
EL 逻辑运算符只有三个 (见表6-8):
表6-8
逻辑运算符 说 明 范 例 结 果
&& 或 and 交集 ${ A && B } 或 ${ A and B } true / false
|| 或 or 并集 ${ A || B } 或 ${ A or B }true / false
! 或 not 非 ${ !A } 或 ${ not A } true / false
下面举几个例子:
${ param.month = = 7 and param.day = = 14 }
${ param.month = = 7 || param.day = = 14 }
${ not param.choice }
EL 其他运算符
(1) Empty运算符
(2) 条件运算符
(3) ( ) 括号运算符
Empty运算符
Empty 运算符主要用来判断值是否为null 或空的,例如:
${ empty param.name }
接下来说明Empty 运算符的规则:
(1) {empty} A
●假若A 为null 时,回传true
●否则,假若A 为空String 时,回传true
●否则,假若A 为空Array 时,回传true
●否则,假若A 为空Map 时,回传true
●否则,假若A 为空Collection 时,回传true
●否则,回传false
条件运算符
所谓条件运算符如下:
${ A ? B : C}
意思是说,当A 为true 时,执行B;而A 为false 时,则执行C
括号运算符
括号运算符主要用来改变执行优先权,例如:${ A * (B+C) }
至于运算符的优先权,如下所示(由高至低,由左至右)
||、or
· ${ A ? B : C}
最 笔者写一个ELOperator.jsp 范例,将所有运算符实际操作一遍。
ELOperator.jsp
<%@ page contentType="text/html;charset=GB2312" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>CH6 – ELOperator.jsp</title>
</head>
<body>
<h2>EL 的运算符</h2>
<c:set value="mike" var="username" scope="request" />
<table border="1" width="50%" align="left">
<TR>
<TR>
<TH>运算式</TH>
<TH>结果</TH>
</TR>
<TR><TD>14 + 3</TD><TD>${14 + 3}</TD></TR>
<TR><TD>14 - 3</TD><TD>${14 - 3}</TD></TR>
<TR><TD>14 * 3</TD><TD>${14 * 3}</TD></TR>
<TR><TD>14 / 3</TD><TD>${14 / 3}</TD></TR>
<TR><TD>14 % 3</TD><TD>${14 % 3}</TD></TR>
<TR><TD>14 == 3</TD><TD>${14 == 3}</TD></TR>
<TR><TD>14 != 3</TD><TD>${14 != 3}</TD></TR>
<TR><TD>14 < 3</TD><TD>${14 < 3}</TD></TR>
<TR><TD>14 > 3</TD><TD>${14 > 3}</TD></TR>
<TR><TD>14 <= 3</TD><TD>${14 <= 3}</TD></TR>
<TR><TD>14 >= 3</TD><TD>${14 >= 3}</TD></TR>
<TR><TD>true && false</TD><TD>${true && false}</TD></TR>
<TR><TD>true || false</TD><TD>${true || false}</TD></TR>
<TR><TD>! false</TD><TD>${! false}</TD></TR>
<TR><TD>empty username</TD><TD>${empty username}</TD></TR>
<TR><TD>empty password</TD><TD>${empty password}</TD></TR>
</table>
</body>
</html>