EL表达式学习

一、传统方式获取作用域数据

缺点一:导入包。

缺点二:需要进行对象强转

缺点三:获取数据的代码过于麻烦,易错

二、使用EL表达式获取作用域数据

1. 作用:获取作用域对象中的数据。

注意:获取的是pageContextrequestsessionapplication四个对象中的数据,其他数据一概不理会。

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}  ab的值会去4个对象中获取

注意:+表示加法运算,不表示字符连接,使用EL表达式进行字符连接或报错

 

EL的控制判断:

${empty 键名}

作用:判断键名对象的值是否存在数据

 

EL获取请求头数据和Cookie数据:

请求头数据:

${header} -->返回所有的请求头数据

${header[“键名”]} --> 返回指定的键名的请求头数据

${headeValuesr[“键名”]} --> 返回指定键名 (同键不同值)的值得数组

获取Cookie数据:

${cookie} --> 返回存储了所有的cookied对象的map集合

${cookie.键名} -->返回指定的cookie对象

${cookie.键名.name} --> 返回指定的cookie对象存储的数据的键名

${cookie.键名.value} -->  返回指定的cookie对象存储的数据的值

posted @ 2019-09-05 23:59  麦兜牛牛  阅读(217)  评论(0)    收藏  举报