验证运算符 empty
算术运算符支持数值的加法、减法、乘法和除法。还提供了一个求余运算符。注:除法和求余运算
符都有替代的、非符号的名称(为的是与 XPath 保持一致)。清单 5 中显示了一个演示算术运算
符用法的示例表达式。对几个 EL 表达式应用算术运算符的结果是将该算术运算符应用于这些表达
式返回的数值所得的结果。
清单 5. 利用算术运算符的 EL 表达式
${item.price * (1 + taxRate[user.address.zipcode])}
关系运算符允许比较数字或文本数据。比较的结果作为布尔值返回。逻辑运算符允许合并布尔值,
返回新的布尔值。因此,可以将 EL 逻辑运算符应用于嵌套的关系或逻辑运算符的结果,如清单 6
所示。
清单 6. 利用关系和逻辑运算符的 EL 表达式
${(x >;= min) && (x <= max)}
最后一种 EL 运算符是 empty,它对于验证数据特别有用。empty 运算符采用单个表达式作为其变
量(也即,${empty input}),并返回一个布尔值,该布尔值表示对表达式求值的结果是不是“空
”值。求值结果为 null 的表达式被认为是空,即无元素的集合或数组。如果参数是对长度为零的
String 求值所得的结果,则 empty 运算符也将返回 true。
表 3 显示了 EL 运算符的优先级。正如清单 5 和 6 所示,可以用圆括号对表达式分组,高于普通
的优先级规则。
表 3. EL 运算符优先级(自顶到底,从左到右)
[], .
()
unary -、not、!、empty
*、/、div、%、mod
+、binary -
() <</code>;、>;、<=、>;=、lt、gt、le、ge
==、!=、eq、ne
&&、and
||、or
--------------------------------------------------------------------------------
echoguo 回复于:2003-08-13 15:32:44
文字
在 EL 表达式中,数字、字符串、布尔值和 null 都可以被指定为文字值。字符串可以用单引号或双引号定界。布尔值被指定为 true 和 false。
Taglib 伪指令
正如我们先前讨论的,JSTL 1.0 包括四个定制标记库。为了演示 JSTL 标记和表达式语言的交互,我们将研究几个来自 JSTL core 库的标记。和使用任何 JSP 定制标记库一样,必须在您想要使用这个库标记的任何页面中包括 taglib 伪指令。清单 7 显示了用于这个特定库的伪指令。
清单 7. 用于 JSTL core 库 EL 版本的 taglib 伪指令
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>;