EL表达式
El全名:Expression Language,有效表达式可以包含文字、操作符、变量(对象引用)调用,
EL表达式说白了,就是让JSP写起来更加方便,它属于JSP技术
El的主要作用
1.获取数据
1.用于替换JSP页面中的脚本语言,获取web作用域中的数据,获取javaBean,list,map....
2.执行运算
1.简单的运算+-*/,三目表达式,eq,empty 等....
3.获取内置对象(作用域总的内容)(九大内置对象)
4.调用java方法
el表达式只能去作用域中的值
语法:${标识符}
EL 表达式的执行过程,调用pageContext,findAttribute,用来查询标示关键字,分别从page,request,
session,application中取值,
如果想要跨优先级取值:
pageScope:获取page存储的数据
requestScope:获取request存储的数据
sessionScope:获取session存储的数据
applicationScope:获取application存储的数据
下面直接看例子:
<%@page import="org.lq.entity.Student"%>
<%@page import="java.util.HashMap"%>
<%@page import="java.util.Map"%>
<%@page import="java.util.ArrayList"%>
<%@page import="java.util.List"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
//存储普通变量
request.setAttribute("num", 6);
//int num = Integer.parseInt(request.getAttribute("num")+"");
//存储相同key值,测试取值的时候作用域的优先级
//request session response application 优先级从大到小
request.setAttribute("name", "request");
session.setAttribute("name", "session");
//存储list集合
List list = new ArrayList();
list.add("admin1");
list.add("admin2");
list.add("admin3");
list.add("admin4");
request.setAttribute("list", list);
//存储数组
String []annimals = {"rabbit","tortilla","elephant","monkey"};
request.setAttribute("annimals", annimals);
//存储Map
Map map = new HashMap();
map.put("id", "rabbit");
map.put("name", "elephant");
request.setAttribute("map", map);
//存储对象,一定要有实体类,尽量不要放在默认包下
Student stu = new Student();
stu.setId(1);
stu.setName("zs");
stu.setAge(100);
request.setAttribute("stu", stu);
%>
<!-- 1.简单的运算+-*/,三目表达式,eq(相当于==),empty 等....都是可以的 -->
<h1>取普通变量并做简单运算:${num+5}</h1>
<h2>优先级测试:${name}</h2>
<h2>取集合:${list}</h2>
<h2>去集合中某个值:${list[1]}</h2>
<h2>去集合中某个值:${list[2]}</h2>
<h2>取数组:${annimals}</h2>
<h2>取数组:${annimals[0]}</h2>
<h2>取Map:${map}</h2>
<h2>取Map中某个值:${map.id}</h2>
<h1>取对象:${stu}</h1>
<h1>取队形中的某个值:${stu.name}->>>>>${stu.id}</h1>
</body>
</html>
结果是: