## EL表达式
1. 概念:Expression Language 表达式语言
2. 作用:替换和简化jsp页面中java代码的编写
3. 语法:${表达式}
4. 注意:
* jsp默认支持el表达式的。如果要忽略el表达式
1. 设置jsp中page指令中:isELIgnored="true" 忽略当前jsp页面中所有的el表达式
2. \${表达式} :忽略当前这个el表达式
5. 使用:
1. 运算:
* 运算符:
1. 算数运算符: + - * /(div) %(mod)
2. 比较运算符: > < >= <= == !=
3. 逻辑运算符: &&(and) ||(or) !(not)
4. 空运算符: empty
* 功能:用于判断字符串、集合、数组对象是否为null或者长度是否为0
* ${empty list}:判断字符串、集合、数组对象是否为null或者长度为0
* ${not empty str}:表示判断字符串、集合、数组对象是否不为null 并且 长度>0
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<html>
<head>
<title>运算符</title>
</head>
<body>
<%--此el表达式不生效--%>
\${3>5}
<h1>比较运算符</h1>
${3==5}
${3>=5}
<h1>逻辑运算符</h1>
${4>8 and 5>6}
<h1>空运算符</h1>
<%-- 空运算符: empty
* 功能:用于判断字符串、集合、数组对象是否为null或者长度是否为0
* ${empty list}:判断字符串、集合、数组对象是否为null或者长度为0
* ${not empty str}:表示判断字符串、集合、数组对象是否不为null 并且 长度>0--%>
<% String a = "";%>
${not empty a}
</body>
</html>
2. 获取值
1. el表达式只能从域对象中获取值
2. 语法:
1. ${域名称.键名}:从指定域中获取指定键的值
*域名称:
1. pageScope --> pageContext
2. requestScope --> request
3. sessionScope --> session
4. applicationScope --> application(ServletContext)
* 存取:<%request.setAttribute("name","haha");%>
* 获取:${requestScope.name}
2. ${键名}:表示依次从最小的域中查找是否有该键对应的值,直到找到为止。
3. 隐式对象:
* el表达式中有11个隐式对象
* pageContext:
* 获取jsp其他八个内置对象
* ${pageContext.request.contextPath}:动态获取虚拟目录
<%@ page import="domain.User" %>
<%@ page import="java.util.Date" %>
<%@ 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>
<%--el表达式使用的前提是把值存入域中--%>
<% User user = new User("haha", 21, new Date());
request.setAttribute("user", user);
ArrayList list = new ArrayList();
list.add(user);
request.setAttribute("list", list);
Map map = new HashMap();
map.put("user", user);
request.setAttribute("map", map);%>
<h1>获取单纯对象的值</h1>
${user.name}
${user.age}
${user.strbr}
<h1>获取list集合的值</h1>
${list[0].name}
${list[0].age}
${list[0].strbr}
<h1>获取map集合的值</h1>
${map.user.name}
<%--隐式对象--%>
<h1>获取虚拟目录</h1>
${pageContext.request.contextPath}
</body>
</html>