在EL表达式中我们可以使用运算符以达到我们想要的结果,运算符按作用分为以下几种:
1.算术运算符
+ 例如:${6+6} 。注意:在EL表达式中的‘+’只有数学运算的功能,没有连接符的功能,它会试着把运算符两边的操作数转换为数值类型,进而进行数学加法运算,最后把结果输出。若出现${\'a\'+\'b\'}则会出现异常。
- 例如:${4-3}
* 例如:${4*3}
/ 例如:${9/3}
2.关系运算符
> 或者 gt, 例如:${8>9} 或者 ${8 gt 9 }
>= 或者 ge, 例如:${45>=9} 或者 ${45 ge 9 }
< 或者 lt, 例如:${4<9} 或者 ${4 lt 9 }
<= 或者 le, 例如:${9<=8} 或者 ${9 le 8 }
== 或者 eq, 例如:${4==4} 或者 ${4 eq 4 }
!= 或者 ne, 例如:${4!=3} 或者 ${4 ne 3 }
3.逻辑运算符
&& 或者 and, 例如:${false && false} 或者 ${false and false }
|| 或者 or, 例如:${true || false} 或者 ${true or false }
! 或者 not,例如:${!true}(相当于${false}) 或者 ${not true }
4.三元运算符
? : 例如:${3>2?\'是\':\'不是\'}
5.特殊运算符
empty 判断EL表达式中的表达式是否为空,例如:${empty sessionScope.user}
"." 是我们最常用的,作用相当于执行Bean中的get方法。 例如:${sessionScope.user.userName}意思是:在会话中得到名称为user的Bean对象,通过“.”运算符执行getUserName();方法,返回存放在Bean中的用户名属性的值。 [] 作用和“.”运算符的一样,只不过[]运算符可以执行一些不规则的标识符。 例如:${requestScope.user["score-math"]},这个表达式中有不规则的标识符,是不能使用“.”来访问的。
el表达式一般不直接用==判断是否相等 != > < >= <=之类的表示不等于 大于 小于 大于等于 小于等于,而是使用字母表示的表达式,他们的表示如下: == eq 等于 != ne 不等于 > gt 大于 < lt 小于 >= ge 大于等于 <= le 小于等于 字符串比较: 不需要双引号“” user.name eq \'001\' user.name eq Lily
el表达式获得集合的长度:
list的长度是:${fn:length(list)}
c:forEach迭代时比较当前的元素是否是最后一个:
<c:if test="${fn:length(list) ne status.index+1}">
<div>hello</div>
</c:if>
${empty 值} 返回true ,表示为空字符串;
<c:if test=" ${empty chapterlist} ">
<td>青蛙,是个笨蛋!!!</td>
</c:if>
El表达式判断是否为空${值 eq null } 返回true 的话,表示为空
<c:if test="${chapterlist eq null }">
<td>青蛙,是个笨蛋!!!</td>
</c:if>