EL表达式学习
一、传统方式获取作用域数据
缺点一:导入包。
缺点二:需要进行对象强转
缺点三:获取数据的代码过于麻烦,易错
二、使用EL表达式获取作用域数据
1. 作用:获取作用域对象中的数据。
注意:获取的是pageContext、request、session、application四个对象中的数据,其他数据一概不理会。
2. 语法:
${表达式}
表达式:获取请求数据
request对象存储的请求数据-->param.键名 返回值
request对象存储的数组请求数据-->paramvalues.键名 返回的是数据组
通过serAttribute方法存储到作用域对象中的数据
${键名}:返回键名对应的值
注意:
如果存储的是普通字符串则直接返回
如果存储的是对象,则返回的是对象
获取普通对象中的数据:
普通对象:${键名.属性名.属性名....}
集合对象:
list集合:${键名[角标]}
map集合:${键名.map集合存储的键名
req.setCharacterEncoding("utf-8");
resp.setCharacterEncoding("utf-8");
resp.setContentType("text/html;charset=utf-8");
String name = req.getParameter("name");
System.out.println("name:"+name);
User user1 = new User(1,"AA","30",new Address("重庆","重庆","渝北"));
User user2 = new User(1,"BB","30",new Address("重庆","重庆1","渝北1"));
User user3 = new User(1,"CC","30",new Address("重庆","重庆1","奉节"));
List<User> list = new ArrayList<>();
list.add(user1);
list.add(user2);
Map<String,User> map = new HashMap<>();
map.put("zj", user1);
map.put("csf", user2);
map.put("ck", user3);
req.setAttribute("user", user1);
req.setAttribute("list", list);
req.setAttribute("map", map);
req.getRequestDispatcher("/el.jsp").forward(req, resp);
1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 2 3 <% 4 request.setAttribute("str", "今天是个好天气"); 5 %> 6 7 <h3>EL表达式学习</h3> 8 <b>${param.name}</b> <br/> 9 10 <b>${str}</b> <br/> 11 12 <b>${user.addr.county}</b> <br/> 13 <b>${list[1].name}</b> <br/> 14 <b>${list[1].addr.city}</b> <br/> 15 16 <b>${map.ck.name}</b> <br/>
作用域查找顺序:
默认查找顺序:
pageContext-->request-->session-->application
注意:每次查找都是从小到大进行查找的,找到了则获取,不再继续查找。
指定查找:
${pageScope.键名} ${requestScope.键名}
${sessionScope.键名} ${applicationScope.键名}
EL表达式的逻辑运算:
${逻辑表达式}:&& 、||、 !
${算术表达式}:+、-、*、/
${关系表达式}:>、<、>=、<=、==、!=、%
特殊:三目运算符 ${a==b ? 1:2} a和b的值会去4个对象中获取
注意:+表示加法运算,不表示字符连接,使用EL表达式进行字符连接或报错
EL的控制判断:
${empty 键名}
作用:判断键名对象的值是否存在数据
EL获取请求头数据和Cookie数据:
请求头数据:
${header} -->返回所有的请求头数据
${header[“键名”]} --> 返回指定的键名的请求头数据
${headeValuesr[“键名”]} --> 返回指定键名 (同键不同值)的值得数组
获取Cookie数据:
${cookie} --> 返回存储了所有的cookied对象的map集合
${cookie.键名} -->返回指定的cookie对象
${cookie.键名.name} --> 返回指定的cookie对象存储的数据的键名
${cookie.键名.value} --> 返回指定的cookie对象存储的数据的值

浙公网安备 33010602011771号