1.用来替代<%= %>脚本表达式。
2.EL只能获取域中的数据,不能设置,不能遍历!!!
3.el表达式可以获取变量的值,在获取时它的底层会调用pageContext的findAttribut e()方法按照由小到大的顺序在四大作用中搜寻指定名称的值,如果找到就直接返回该值, 如果找不到就什么也不输出
4.如果需要在jsp页面中使用EL表达式,则必须开启EL表达式的支持:
<%@ page language="java" pageEncoding="UTF-8" isELIgnored="false" %>
5.el表达式接地址栏中参数的值
<h1>${param.name }</h1>
<h1>${param.age }</h1>
6.EL运算
运算符:
1. 算数运算符: + - * /(div) %(mod)
2. 比较运算符: > < >= <= == !=
3. 逻辑运算符: &&(and) ||(or) !(not)
4. 空运算符: empty 功能:用于判断字符串、集合、数组对象是否为null或者长度是否为0
${empty list}:判断字符串、集合、数组对象是否为null或者长度为0
${not empty str}:表示判断字符串、集合、数组对象是否不为null 并且 长度>0
7.el表达式只能从域对象中获取值
语法:
1. ${域名称.键名}:从指定域中获取指定键的值
域名称:
1. pageScope --> pageContext
2. requestScope --> request
3. sessionScope --> session
4. applicationScope --> application(ServletContext)
举例:在request域中存储了name=张三
获取:${requestScope.name}9
2. ${键名}:表示依次从最小的域中查找是否有该键对应的值,直到找到为止。
3. 获取对象、List集合、Map集合的值
对象:${域名称.键名.属性名}
本质上会去调用对象的getter方法
List集合:${域名称.键名[索引]}
Map集合:
${域名称.键名.key名称}
${域名称.键名["key名称"]}
8.键也能取值也是语法允许的,而之所以有的取值要有域对象是因为怕有重复的,咱们只用request和session,不怎么重复,所以只用了键值
${session.LoginUsers.uname}
${.LoginUsers.uname}