EL表达式获取域对象
语法:${域对象}
作用:简化jsp代码,用于获取域对象;
注意:EL表达式不能用于获取局部变量,一般都是用于获取域对象的值;
EL默认从小的域对象到大的域对象开始寻找,找到一个域对象就停止;
EL表达式没有找到域对象会默认为空字符串;
EL表达式用于获取不同范围的域对象但其参数名相同(假设都是username)的域对象(尽量不要定义相同名字的域对象):
page域对象:${pageScope.username}
request域对象:${pageScope.username}
session域对象:${sessionScope.username}
application域对象:${applicationScope.username}
实例代码:
<%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head><title>EL表达式</title></head><body><%pageContext.setAttribute("username","wjh01");//设置page域对象request.setAttribute("username","wjh02");//设置request对象session.setAttribute("username","wjh03");//设置session对象application.setAttribute("username","wjh04");//设置application对象%>${message};</body></html>
EL表达式获取集合类对象
四大域对象还可以是一个集合类对象,用的比较多的就是list集合和map集合,而EL表达也可以获取域对象中的集合类对象。
<%@ page import="java.util.List" %><%@ page import="java.util.ArrayList" %><%@ page import="java.util.Map" %><%@ page import="java.util.HashMap" %><%--Created by IntelliJ IDEA.User: 26913Date: 2021/3/16Time: 9:18To change this template use File | Settings | File Templates.--%><%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head><title>EL表达式</title></head><body><%List list01=new ArrayList();//创建ArrayList集合对象list01.add("wjh01");list01.add("wjh02");list01.add("wjh03");request.setAttribute("list02",list01);Map map01=new HashMap();//创建HashMap集合对象map01.put("str0","gsl01");map01.put("str1","gsl02");map01.put("str2","gsl03");request.setAttribute("map02",map01);//注意域对象中代表map01集合的集合是map02,而非map01%>集合list02的长度:${list02.size()}<br>集合list02中第0个元素:${list02[0]}<br><br>集合map02的长度:${map02.size()}<br>集合map02中的第0个元素:${map02.str0}<br>集合map02中的第1个元素:${map02["str1"]}<br>/*使用map.key和map.[key]都是可以的*/</body></html>
EL表达式之empty(或!empty)属性
判断通过EL表达式获取的域对象是否为空的方法是使用empty属性(判断是否非空用!empt),该属性用的很多
<%@ page import="java.util.List" %><%@ page import="java.util.ArrayList" %><%@ page import="java.util.Map" %><%@ page import="java.util.HashMap" %><%--Created by IntelliJ IDEA.User: 26913Date: 2021/3/16Time: 9:18To change this template use File | Settings | File Templates.--%><%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head><title>EL表达式</title></head><body><%request.setAttribute("str01","");request.setAttribute("str02",null);request.setAttribute("str03","");List list01=null;List list02=new ArrayList();List list03=new ArrayList();list03.add(1314520);Map map01=null;Map map02=new HashMap();Map map03=new HashMap();map03.put(1,"wjh1234");%>判断str是否为空:${empty str}<br> //由于域对象中没有str对象,所有默认str为空字符集判断str01是否为空:${empty str01}<br>判断str02是否为空:${empty str02}<br>判断str03是否为空:${empty str03}<br>判断list01是否为空:${empty list01}<br>判断list02是否为空:${empty list02}<br>判断list03是否为空:${empty list03}<br>判断map01是否为空:${empty map01}<br>判断map02是否为空:${empty map02}<br>判断map03是否为空:${empty map03}<br></body></html>
EL表达式之运算符
(1)比较运算符:
<%—
比较两个值是否相等,返回true或false
== 或 eq
—%>
${a == b }
${c == d }
${c eq d }
${a == 5 }
${c == ‘aa’ }
(2)算术运算符:
<%—
加法: +
减法: -
乘法: *
除法: / 或 div
—%>
${a + b }
${a / b } 或 ${a div b }
(3)比较运算符:
<%—
大于:>
小于:<
大于等于:>=
小于等于:<=
—%>
${a > b}
${a + 1 > 10 }
${a + b >= 10 }
${a > b && b > 5 }
${a + b > 10 || a - b > 5 }
