EL 表达式语法如下:
${EL表达式}
EL 表达式语法以${
开头,以}
结束,中间为合法的表达式。
示例
${param.name}
表示获取参数 name 的值,它等同于 <%=request.getParameter('name') %>
。从形式和语法上可以看出,EL 表达式简化了 JSP 原有的表达式。在实际开发中,EL 表达式也是经常使用的方式。
EL 表达式定义了许多运算符,如算术运算符、比较运算符、逻辑运算符等,使用这些运算符,可以使 JSP 页面更加简洁。
L算术运算符
算术运算符用来进行加、减、乘、除和求余,EL 表达式算术运算符如下:
EL算术运算符 | 说明 | 范例 | 结果 |
---|---|---|---|
+ | 加 | ${5+2} | 7 |
- | 减 | ${5-2} | 3 |
* | 乘 | ${5*2} | 10 |
/ 或 div | 除 | ${5/2} | 2 |
% 或 mod | 求余 | ${5%2} | 1 |
注意:EL 的+
运算符与 Java 的+
运算符不一样,它无法实现两个字符串的连接运算。如果该运算符连接的两个值不能转换为数值型的字符串,则会拋出异常;反之,EL 会自动将这两个字符转换为数值型数据,再进行运算。
EL 表达式中还可以使用 ( )
改变优先级,例如:${2+3*2}
等于 8,${(2+3)*2}
等于 10。
EL比较运算符
比较运算符用来实现两个表达式的比较,进行比较的表达式可以是数值型或字符串。EL 表达式比较运算符如下:
EL比较运算符 | 说明 | 范例 | 结果 |
---|---|---|---|
== 或 eq | 等于 | ${6==6} 或 ${6 eq 6} ${"A"="a"} 或 ${"A" eq "a"} | true false |
!= 或 ne | 不等于 | ${6!=6} 或 ${6 ne 6} ${“A"!=“a”} 或 ${“A” ne “a”} | false true |
< 或 lt | 小于 | ${3<8} 或 ${3 lt 8} ${"A"<"a"} 或 ${"A" lt "a"} | true true |
> 或 gt | 大于 | ${3>8} 或 ${3 gt 8} ${"A">"a"} 或 ${"A" gt "a"} | false false |
<= 或 le | 小于等于 | ${3<=8} 或 ${3 le 8} ${"A"<="a"} 或 ${"A" le "a"} | true true |
>= 或 ge | 大于等于 | ${3>=8} 或 ${3 ge 8} ${"A">="a"} 或 ${"A" ge "a"} | false false |
EL逻辑运算符
逻辑运算符两边的表达式必须是布尔型(Boolean)变量,其返回结果也是布尔型(Boolean)。EL 表达式逻辑运算符如下:
EL逻辑运算符 | 说明 | 范例 | 结果 |
---|---|---|---|
&& 或 and | 与 | ${2>1&&3<4 } 或 ${2>1and3<4 } | true |
|| 或 or | 或 | ${2<1||3>4} 或 ${2<1or3>4} | false |
! 或 not | 非 | ${!(2>4)} 或 ${not (2>4)} | true |
运算符演示如下:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" import="net.biancheng.*,java.util.*"%> <!DOCTYPE html> <html> <head> <title>编程帮(www.biancheng.net)</title> </head> <body> <h4>.运算符</h4> <% Site site = new Site(); site.setName("编程帮"); site.setUrl("www.biancheng.net"); session.setAttribute("site", site); %> 欢迎来到${site.name},我们的网址是:${site.url} <h4>[]运算符</h4> <% List tutorials = new ArrayList(); tutorials.add("Java"); tutorials.add("Python"); session.setAttribute("tutorials", tutorials); HashMap siteMap = new HashMap(); siteMap.put("one", "编程帮"); siteMap.put("two", "C语言中文网"); session.setAttribute("site", siteMap); %> tutorials 中的内容:${tutorials[0]},${tutorials[1]} <br> siteMap 中的内容:${site.one},${site.two} <h4>empty和条件运算符</h4> <!-- 当 cart 变量为空时,输出购物车为空,否则输出cart --> <% String cart = null; %> ${empty cart?"购物车为空":cart} </body> </html>