EL表达式
EL表达式的全称是:Expression Language。是表达式语言。
EL表达式有什么作用:EL表达式主要是代替jsp页面中的表达式脚本在jsp页面中进行数据的输出。
因为EL表达式在输出数据时,比jsp表达式脚本简洁很多。
request.setAttribute(“key”,“value”);
jsp脚本输出:request.getAttribute(“key”);
EL表达式输出:${key}
当输出的键值对不存在的时候
jsp脚本输出:null;
EL表达式输出: (啥也没有)
显然EL表达式更加符合普通用户的观感
如想使用jsp脚本实现相同效果
<%= request.getAttribute(“key”)==null?"":request.getAttribute(“key”)%>
EL表达式搜索域数据的顺序
EL表达式主要输出域对象中的数据
当pageContext、request、session、application中键相同时
${键}输出值的优先级为 域范围越小 优先级越高
EL表达式输出Bean的普通属性、数组属性、List集合属性、Map集合属性
需求–输出Person类中普通属性、数组属性、LIst属性和Map集合属性
输出person
<% request.setAttribute(“p”,person);%>
${p}
输出p.name
${p.name}
输出p.phones(数组)
${p.phones+p.phones[0]+…}
输出cities(List集合)
$(p.cities[0])(同数组)
输出Map集合
${p.map+p.map.key1}
EL表达式的原理
EL表达式认准的是属性对应的get方法 属性并不必要 但是get方法是必要的
EL表达式的运算
关系运算 ==(eq)、!=(ne)、<(lt)、>(gt)、<=(le)、>=(ge)
逻辑运算 &&(and)、||(or)、!(not)
算术运算+、-、*、/(div)、%(mod)
empty运算
empty运算可以判断一个数据是否为空
如果为空 true
不为空 false
以下几种情况为空
1.值为null的时候为空
2.值为""(空串)的时候为空
3.值是Object类型数组 长度为0的时候
4.list集合 元素个数为零
5.map集合 元素个数为零