1.empty 含义:
empty用来对一个空变量值进行判断: null、一个空String、空数组、空Map、没有条目的Collection集合
empty 运算符采用单个表达式作为其变量(也即,${empty input}),并返回一个布尔值,该布尔值表示对表达式求值的结果是不是“空”值。求值结果为 null 的表达式被认为 是空,即无元素的集合或数组。如果参数是对长度为零的 String 求值所得的结果,则 empty 运算符也将返回 true。
EL 充当指定动态属性值的简化语言,EL 存取器有一个有趣的功能(与 Java 语言的存取器不同),那就是它们在应用于 null 时不抛出异常。如果应用 EL 存取器的对象(例如, ${foo.bar} 和 ${foo["bar"]} 中的 foo 标识符)是 null,那么应用存取器的结果也是 null。 它对于验证数据特别有用
2.常用运算符:
3.文字
null
都可以被指定为文字值。字符串可以用单引号或双引号定界。布尔值被指定为 true
和 false
。<c:set var="name" scope="scope" value="expression"/> scope 属性是可选的,其缺省值是 page。
<c:set var="timezone" scope="session" value="CST"/> <c:set var="square" value="${param['x'] * param['x']}"/>
还有一种等价写法:
<c:set var="timezone" scope="session">CST</c:set>
b:<c:remove> 操作是用来删除限制了作用域的变量
<c:remove var="timezone" scope="session"/>
var
属性指定待删除变量的名称,scope
属性是可选的,它表示待删除变量来自哪个作用域,缺省为 page
c:<c:out> 输出
<c:out value="expression" default="expression" escapeXml="boolean"/>
escapeXml
属性也是可选的。它控制当用 <c:out>
标记输出诸如“<”、“>”和“&”之类的字符(在 HTML 和 XML 中具有特殊意义)时是否应该进行转义。如果将 escapeXml
设置为 true,则会自动将这些字符转换成相应的 XML 实体(此处提到的字符分别转换成 <
、>
和 &
)。
禁用转义的<c:out>实例
<c:out value="${user.company}" escapeXml=="false"/>
默认值:
<c:set var="timezone" scope=="session"> <c:out value="${cookie['tzPref'].value}" default=="CST"/> </c:set>
除了简化动态数据的显示之外,当通过 <c:set> 设置变量值时,<c:out> 指定缺省值的能力也很有用。用来赋给限制了作用域的变量的值可以指定为 <c:set> 标记的主体内容,也可以通过其值属性来指定。通过将 <c:out> 操作嵌套在 <c:set> 标记的主体内容中,变量赋值就可以利用其缺省值能力。
外部 <c:set> 标记的行为非常简单:它根据其主体内容设置会话作用域 timezone 变量的值。但是,在这种情况下,主体内容是通过 <c:out> 操作生成的。这个嵌套操作的值属性是表达式 ${cookie['tzPref'].value},它尝试通过 cookie 隐式对象返回名为 tzPref 的 cookie 值。(cookie 隐式对象将 cookie 名称映射到相应的 Cookie 实例,这意味着必须通过对象的 value 特性使用点运算符来检索储存在 cookie 中的实际数据。)