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: 26913
Date: 2021/3/16
Time: 9:18
To 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: 26913
Date: 2021/3/16
Time: 9:18
To 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 }