1.什么是EL表达式?
EL表达式的全称是:Expression Language。是一种表达式语言。
EL表达式的作用是:EL表达式主要代替JSP页面中的表达式脚本在JSP页面中进行数据的输出,主要输出域对象中的数据。(因为EL表达式在页面输出数据时,比JSP页面脚本要简洁很多。)
<body>
<%
request.setAttribute("key1", "value1");
%>
表达式脚本输出key的值为:<%= request.getAttribute("key1") %><br/>
EL表达式输出key的值是: ${key1}
</body>
补充:EL表达式在输出null值的时候,输出的是空串,而Jsp表达式输出的是null。
EL表达式写法为:${表达式}。
2.EL表达式搜索域对象的数据顺序:
当四个域中有相同的key值的数据时,EL表达式会按照四个域的从小到达的顺序进行搜索。
顺序如下:(pageContext --> request --> session --> application)
3.EL表达式的运算
1.由于EL表达式的算数运算,逻辑运算,关系运算和JavaSe中的运算法则一致,这里就不详细介绍了。
2.empty运算
empty运算可以判断一个数据是否为空,如果为空,输出true,不为空输出false。
一下情况为空:
- 值为null的时候。
- 值为空串的时候。
- 值是Object数组,长度为零的时候。
- list集合,元素个数为零。
- map集合,元素个数为零。
测试代码:
empty运算: <br/>
<%
request.setAttribute("emptyNull", null);
request.setAttribute("emptyStr","");
request.setAttribute("emptyArr",new Object[]{});
List<String> list = new ArrayList<>();
request.setAttribute("emptyList", list);
Map<String,String> map1 = new HashMap<String,String>();
request.setAttribute("emptyMap", map1);
%>
${empty emptyNull } <br/>
${empty emptyStr } <br/>
${empty emptyArr } <br/>
${empty emptyList } <br/>
${empty emptyMap } <br/>
结果:
3.三元运算
写法: 表达式1 ? 表达式2 : 表达式3 (如果表达式1为true,则返回表达式2的值;表达式1为false,返回表达式3)
4.‘ . ’运算和[ ]运算
.运算,可以输出Bean对象中某个属性的值。
[ ] 运算,可以输出集合中某个元素的值。
并且[ ]运算,还可以输出map集合中key里含有特殊字符的key值。