一、概念
EL使JSP写起来更简单、简洁。主要用于获取作用域中的数据
二、作用
用于替换作用域对象.getAttribute(“name”);
三、EL的应用(获取基本类型、字符串)
${scope.name}获取具体某个作用域中的数据
${name}获取作用域中的数据,逐级查找(pageContext、request、session、application)
例题
如果
request.setAttribute("key666")
session.setAttribut("key666")
application.setAttribute("key666")
全部都命名为key666,用EL表达式$ {key666}
获取会获取到查询到的第一个(顺序是先查request.setAttribute(“key666”)、session.setAttribute(“key666”)、application.setAttribute(“key666”))
四、为什么要用EL表达式,EL表达式和JSP脚本的区别
假设在页面中key8没有定义
用EL表达式输出这个不存在的key8
<h1>$ {
requestScope.key8}<h1>
输出结果是“”,就是什么也没有
但是如果通过作用域对象获取
<h1><%=request.getAttribute("key8")%></h1>
在浏览器会输出一个null
如果是一个表格里面的数据
我们更希望是“ ”,而不是null
所以建议通过EL表达式获取数据
五、EL的应用
5.1 获取引用类型
使用EL获取作用域中的对象调用属性时,只能访问对象的get方法,必须遵守命名规范定义
输出结果为-----
5.2 获取数组、集合的元素
例题
<%@ page import="com.qf.project.entity.Admin" %>
<%@ 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>
<%
int[] array = {
1,3,5,6};
request.setAttribute("arr",array);
List<String> nums = new ArrayList<>();
nums.add("A");
nums.add("B");
nums.add("C");
request.setAttribute("list",nums);
Map<String,String> maps = new HashMap<>