1、EL表达式概述
EL表达式,全称是Expression Language。意为表达式语言。它是Servlet规范中的一部分,是JSP2.0规范加入的内容。其作用是用于在JSP页面中获取数据,从而让我们的JSP脱离java代码块和JSP表达式。
2、基本语法
EL表达式的语法格式非常简单,写为 ${表达式内容}
例如:在浏览器中输出请求域中名称为message的内容。
Java代码块 | JSP表达式 | EL表达式 |
---|---|---|
<%<br/> <br/> String message = (String)request.getAttribute("message");<br/> out.write(message);<br/>%> | <%=request.getAttribute("message")%> | ${message} |
<%@ page import="com.codeui.top.User" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.HashMap" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>$Title$</title>
</head>
<body>
<% pageContext.setAttribute("num",10);%>
基本数据类型 num:${num}
<br>
<% User user = new User("张三","2311231");
pageContext.setAttribute("user",user);%>
自定义类型 user:${user}<br>
user.name${user.name}<br>
user.password${user.password}<br>
<% String[] arr = {"hello","world"};
pageContext.setAttribute("arr",arr);
%>
数组 ${arr[0]} ${arr[1]}<br>
<% ArrayList<String> list = new ArrayList<>();
list.add("aaa");
list.add("bbb");
pageContext.setAttribute("list",list);
%>
list集合 ${list[0]}<br>
<%
HashMap<String, User> map = new HashMap<>();
map.put("user1",new User("注释","12312"));
map.put("user2",new User("喜刷刷","1123112"));
pageContext.setAttribute("map",map);
%>
第一个学生对象 ${map.user1}<br>
第一个学生对象名字 ${map.user1.name}<br>
</body>
</html>
3、注意事项
- EL表达式没有空指针异常
- EL表达式没有索引越界异常
- EL表达式没有字符串的拼接
4、EL表达式运算符
-
关系运算符
-
逻辑运算符
-
其他运算符
运算符 作用 empty 1.判断对象是否为null
2.判断字符串是否为空
3.判断容器元素是否为0条件?表达式1:表达式2 三元运算符
5、细节
- EL表达式能够获取四大域对象的数据,根据名称从小到大再域对象中查找
- 也能获取JSP其他八个隐式对象,并调用对象中的方法
6、EL11个隐式对象
EL中的隐式对象 | 类型 | 对应JSP隐式对象 | 备注 |
---|---|---|---|
PageContext | Javax.serlvet.jsp.PageContext | PageContext | 完全一样 |
ApplicationScope | Java.util.Map | 没有 | 应用层范围 |
SessionScope | Java.util.Map | 没有 | 会话范围 |
RequestScope | Java.util.Map | 没有 | 请求范围 |
PageScope | Java.util.Map | 没有 | 页面层范围 |
Header | Java.util.Map | 没有 | 请求消息头key,值是value(一个) |
HeaderValues | Java.util.Map | 没有 | 请求消息头key,值是数组(一个头多个值) |
Param | Java.util.Map | 没有 | 请求参数key,值是value(一个) |
ParamValues | Java.util.Map | 没有 | 请求参数key,值是数组(一个名称多个值) |
InitParam | Java.util.Map | 没有 | 全局参数,key是参数名称,value是参数值 |
Cookie | Java.util.Map | 没有 | Key是cookie的名称,value是cookie对象 |
评论区