EL表达式
-
EL表达式全程 Expression language。 表达式语言 。
-
为什么要用:输出更简单
-
主要是是输出域对象的数据
代码演示
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>$Title$</title>
</head>
<body>
<%
request.setAttribute("key","abc");
%>
表达式脚本输出key的值是:<%=request.getAttribute("key")%> <br>
EL输出key的值是:${key} <br>
表达式脚本输出key的值是:<%=request.getAttribute("key1")%> <br>
EL输出key的值是:${key1}
<%--
表达式脚本输出key的值是:abc
EL输出key的值是:abc
表达式脚本输出key的值是:null
EL输出key的值是:
--%>
</body>
</html>
EL表达式的格式是 ${表达式}
EL表达式在输出null值的时候,输出的是空串。jsp表达式脚本输出null时,输出的是null
当四个域中都有相同的key的数据的时候,会按域的从小到大的顺序去进行搜索,找到就输出
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>$Title$</title>
</head>
<body>
<%
request.setAttribute("key","request");
session.setAttribute("key","session");
application.setAttribute("key","application");
pageContext.setAttribute("key","pageContext");
%>
${key}
</body>
</html>
EL表达式输出复杂的Bean对象
person类
---------------------存数据-------------------
jsp中取数据
它不是直接找person类里的属性,而是找person类里的get方法
EL表达式-----运算
关系运算
逻辑运算
算数运算
empty运算
以下几种情况为空
- 值为null
- 值为空串
- 值是object,长度为0
- list集合,元素个数为0
- map集合,元素个数为0
代码演示
<%@ page import="java.util.List" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.Map" %>
<%@ page import="java.util.HashMap" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>$Title$</title>
</head>
<body>
<%
request.setAttribute("emptyNull",null);
request.setAttribute("emptyStr","");
request.setAttribute("emptyArr",new Object[]{});
List<String> list=new ArrayList<String>();
request.setAttribute("emptyList",list);
Map<String,Object> map=new HashMap<String, Object>();
request.setAttribute("emptyMap",map);
%>
${empty emptyNull} <br>
${empty emptyStr} <br>
${empty emptyArr} <br>
${empty emptyList} <br>
${empty emptyMap} <br>
</body>
</html>
三元运算
表达式1?表达式2:表达式3
${12=12?"true":"false"}
点运算 和 中括号运算符
两个差不多,只不过[]中括号运算,还可以输出map集合中key里含有特殊字符的值
代码演示
<%@ page import="java.util.Map" %>
<%@ page import="java.util.HashMap" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
Map<String,Object> map=new HashMap<String, Object>();
map.put("aaa","aaaValue");
map.put("b.b.b","bbbValue");
map.put("c+c+c","cccValue");
request.setAttribute("map",map);
%>
${map.aaa} <br>
${map['b.b.b']} <br>
${map["c+c+c"]}
</body>
</html>