语法:${ 运算表达式 } , EL 表达式支持如下运算符:
1、关系运算
2、逻辑运算
3、算数运算
4、 empty 运算
empty 运算可以判断一个数据是否为空,如果为空,则输出 true,不为空输出 false。
以下几种情况为空:
- 1、值为 null 值的时候,为空
- 2、值为空串的时候,为空
- 3、值是 Object 类型数组,长度为零的时候
- 4、list 集合,元素个数为零
- 5、map 集合,元素个数为零
代码示例:
<body>
<%
// 1、值为 null 值的时候,为空
request.setAttribute("emptyNull",null);
//
// 2、值为空串的时候,为空
request.setAttribute("emptyStr","");
// 3、值是 Object 类型数组,长度为零的时候
request.setAttribute("emptyObj",new Object[]{});
// 4、list 集合,元素个数为零
request.setAttribute("emptyList",new ArrayList<String>());
// 5、map 集合,元素个数为
request.setAttribute("emptyMap",new HashMap<String,Object>());
%>
${empty emptyNull}<br/>
${empty emptyStr}<br/>
${empty emptyObj}<br/>
${empty emptyList}<br/>
${empty emptyMap}<br/>
</body>
5、三元运算
表达式 1?表达式 2:表达式 3
如果表达式 1 的值为真,返回表达式 2 的值,如果表达式 1 的值为假,返回表达式 3 的值。
示例:
${12 == 12 ? "真" : "假"}<br/>
6、“.”点运算 和 [] 中括号运算符
- .点运算,可以输出 Bean 对象中某个属性的值。
- []中括号运算,可以输出有序集合中某个元素的值。 并且[]中括号运算,还可以输出 map 集合中 key 里含有特殊字符
的 key 的值。
示例:
<%
Map<String,Object> map = new HashMap<>();
map.put("a+a+a","aaavalue");
map.put("b.b.b","bbbvalue");
map.put("c-c-c","cccvalue");
request.setAttribute("map",map);
%>
${map["a+a+a"]}<br/>
${map['b.b.b']}<br/>
${map["c-c-c"]}<br/>