概念:
EL(Expression(表达) Language(语言)) 是为了使JSP写起来更加简单。表达式语言的灵感来自于 ECMAScript 和 XPath 表达式语言,它提供了在 JSP 中简化表达式的方法,让Jsp的代码更加简化。
作用:简化和替换jsp页面中的java代码的表现
语法:${表达式}
使用EL表达式往网页中写内容
${"hello el"}
empty运算符
用法为${empty 变量},结果为布尔值 判断对象是否为空
用法为${not empty 变量},结果为布尔值 判断对象是否为不为空
运算符 | 关键词 | 描述 |
---|---|---|
== | eq | 判断是否相等 |
> | gt | 判断是否大于 |
< | lt | 判断是否小于 |
empty | 判断是否为空 | |
! | not | 非 |
获取数据(从四大作用域中获取属性值)
EL只能从四大域中获取属性
获取域中属性值语法:${属性名}
<%--设置四大作用域的属性值--%>
<%
pageContext.setAttribute("name","皮卡丘");
request.setAttribute("name","小火龙");
session.setAttribute("name","大白熊");
application.setAttribute("name","光头强");
%>
<%--通过EL表达式获取域中的属性值,语法:${属性名}--%>
name===>${name}
当多个域中出现相同的属性名时(key值相同),如果没有使用EL的内置对象,则查找数据顺序是依次按照作用域由小到大范围从四大域中查找指定名称的属性值
使用EL内置对象,从指定域中获取数据(提高查找效率)
语法:${sessionScope.属性名} 从session域中获取属性值
pageScope:从page范围域属性空间中查找指定的key
requestScope:从request范围域属性空间中查找指定的key
sessionScope:从session范围域属性空间中查找指定的key
applicationScope:从application范围域属性空间中查找指定的key
<%--设置四大作用域的属性值--%>
<%
pageContext.setAttribute("name","皮卡丘");
request.setAttribute("name","小火龙");
session.setAttribute("name","大白熊");
application.setAttribute("name","光头强");
%>
<%--通过EL表达式获取指定域中的属性值(获取session域中的属性值)--%>
name===>${sessionScope.name}
获取对象(从四大域中获取)
语法:${对象名.属性名}
<%@ page contentType="text/html;charset=UTF-8" language="java" import="cn.yunhe.Emp" %>
EL表达式获取对象
<%
Emp emp=new Emp();
emp.setEno(20);
emp.setEname("双面龟");
//将对象添加到session域中
session.setAttribute("emp",emp);
%>
<%--使用EL表达式,从域中获取对象,语法:${对象名.属性}--%>
Emp===》${emp.ename},${emp.eno}
获取List集合中的元素(从四大域中获取)
<%@ page import="java.util.List" %>
<%@ page import="java.util.ArrayList" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
EL表达式获取list集合中的数据
<%
List names=new ArrayList<>();
names.add("哈喽");
names.add("你好");
names.add("哈哈");
pageContext.setAttribute("names",names);
%>
<%--应为list集合底层是数组,可以直接使用下标获取集合中的元素,语法:${属性名【下标】}--%>
list===>${names[2]}
EL表达式可以通过下标获取List集合中的元素,因为List底层是数组,set集合不可以
获取List集合中的对象的属性值
语法:${属性名【下标】.对象的属性}
<%
List empList=new ArrayList<>();
Emp emp=new Emp();
emp.setEno(20);
emp.setEname("双面龟");
empList.add(emp);
//将对象添加到session域中
session.setAttribute("empList",empList);
%>
<%--使用EL表达式,从List集合中获取对象中的属性 语法:${属性名【下标】.对象的属性}--%>
Emp===》${empList[0].ename}
获取Map集合中的value值(从四大域中获取)
语法一:${属性名.ke}
语法二:${属性名【“key”】}
<%@ page import="java.util.Map" %>
<%@ page import="java.util.HashMap" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
EL表达式从map集合和中获取数据
<%
Map map=new HashMap<>();
map.put("name","西欧");
map.put("age",19);
pageContext.setAttribute("map",map);
%>
<%--从Map集合获取元素值(value值),语法:${属性名.key}--%>
name===>${map.name}
age====>${map.age}
<%--第二种写法,语法:${属性名【“key”】}--%>
name====>${map["name"]}
age====>${map["age"]}