- 内容提要
- 作者简介
- 译者简介
- 前言
- HTTP
- Servlet 和 JSP
- 下载 Spring 或使用 STS 与 Maven/Gradle
- 手动下载 Spring
- 使用 STS 和 Maven/Gradle
- 下载 Spring 源码
- 本书内容简介
- 下载示例应用
- 第 1 章Spring 框架
- 第 2 章模型 2 和 MVC 模式
- 第 3 章Spring MVC 介绍
- 第 4 章基于注解的控制器
- 第 5 章数据绑定和表单标签库
- 第 6 章转换器和格式化
- 第 7 章验证器
- 第 8 章表达式语言
- 第 9 章JSTL
- 第 10 章国际化
- 第 11 章上传文件
- 第 12 章下载文件
- 第 13 章应用测试
- 附录 A Tomcat
- 附录 B Spring Tool Suite 和 Maven
- 附录 C Servlet
- 附录 D JavaServer Pages
- 附录 E 部署描述符
8.5 使用其他 EL 运算符
除了.和 [] 运算符外,EL 还提供了其他运算符:算术运算符、关系运算符、逻辑运算符、条件运算符,以及 empty 运算符。使用这些运算符时,可以进行不同的运算。但是,由于 EL 的目的是方便免脚本 JSP 页面的编程,因此,除了关系运算符外,这些 EL 运算符的用处都很有限。
8.5.1 算术运算符
算术运算符有 5 种。
加法(+)。
减法(−)。
乘法(*)。
除法(/和 div)。
取余/取模(%和 mod)。
除法和取余运算符都有两种形式,与 XPath 和 ECMAScript 是一致的。
注意,EL 表达式的计算按优先级从高到低、从左到右进行。下列运算符是按优先级递减顺序排列的:
*/div%mod
+-
这表示*、/、div、%以及 mod 运算符的优先级相同,+与−的优先级相同,但第二组运算符的优先级小于第一组运算符。因此,表达式
${1+2*3}
的运算结果是 7,而不是 9。
8.5.2 关系运算符
下面是关系运算符列表:
等于(==和 eq)。
不等于(!=和 ne)。
大于(>和 gt)。
大于或等于(>=和 ge)。
小于(<和 lt)。
小于或等于(<=和 le)。
例如,表达式${3==4}返回 False,${“b”<“d”}则返回 True。
8.5.3 逻辑运算符
下面是逻辑运算符列表:
和(&&和 and)。
或(|| 和 or)。
非(!和 not)。
8.5.4 条件运算符
EL 条件运算符的语法如下:
${statement? A:B}
如果 statement 的计算结果为 True,那么该表达式的输出结果就是 A,否则为 B。
例如,利用下列 EL 表达式可以测试 HttpSession 中是否包含名为 loggedIn 的属性。如果找到这个属性,就显示“You have logged in(您已经登录)”。否则显示“You have not logged in(您尚未登录)”。
${(sessionScope.loggedIn==null)? "You have not logged in" :
"You have logged in"}
8.5.5 empty 运算符
empty 运算符用来检查某一个值是否为 null 或者 empty。下面是一个 empty 运算符的使用范例:
${empty X}
如果 X 为 null,或者说 X 是一个长度为 0 的字符串,那么该表达式将返回 True。如果 X 是一个空 Map、空数组或者空集合,它也将返回 True。否则,将返回 False。
8.5.6 字符串连接运算符
+ =运算符用于连接字符串。 例如,以下表达式打印 a + b 的值。
$ {a + = b}
8.5.7 分号操作符
; 操作符用于分隔两个表达式。 有关示例,请参阅本章后面的 8.10 节。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论