是什么
- 全名为Expression Language(表达式语言)
为什么会出现
- Jsp嵌套太多的Java代码,维护不方便
- 目的使JSP写起来更加简单
能解决什么问题
EL表达式获取数据语法:"${标识符}"
分别从page、request、session、application四个域中查找相应的对象,
找到则返回相应对象,找不到则返回“”(不是null),底层调用pageContext.findAttribute
- 执行运算
- web开发常用对象
- 调用JavaBean中的方法
获取数据
- 用el表达式获取对象中的属性:${对象.属性}
- 用el表达式获取list集合中指定位置的数据:${list[1].name}
- 用el表达式获取map集合的数据 :${map.key},${map[‘key’]}
执行运算
- 关系运算符
- 逻辑运算符
- 判断是否为空
${empty(null)}
${empty ""}
“”(空字符串)和null的结果是一样的
内置对象
对象 | 说明 | el用法 | java用法 |
---|
pageScope | 代表page域中用于保存属性的Map对象 | pageScope.name | pageContext.getAttribute(“name”) |
requestScope | 代表request域中用于保存属性的Map对象 | requestScope.name | request.getAttribute(“name”) |
sessionScope | 代表session域中用于保存属性的Map对象 | sessionScope.name | session.getAttribute(“name”) |
applicationScope | 代表application域中用于保存属性的Map对象 | applicationScope.name | application.getAttribute(“name”) |
param | 表示一个保存了所有请求参数的Map对象 | param.name | request.getParameter(“name”) |
paramValues | 表示一个保存了所有请求参数的Map对象,它对于某个请求参数,返回的是一个string[] | ${paramValues.love[1]} | request.getParameterValues(“love”) |
initParam | 表示一个保存了所有web应用初始化参数的map对象 | ${initParam.driver} | application.getInitParameter(“driver”) |
cookie | 表示一个保存了所有cookie的Map对象 | ${cookie}${cookie.c1.value} | request.getCookies() |