EL概念

1、什么是 EL 表达式

EL 表达式的全称是:Expression Language。是表达式语言。

2、EL 表达式的作用?

EL 表达式主要是代替 jsp 页面中的表达式脚本在 jsp 页面中进行数据的输出。 因为 EL 表达式在输出数据的时候,要比 jsp 的表达式脚本要简洁很多

<body>
<%
    request.setAttribute("key","value");
%>

jsp表达式脚本输出key的值:<%=request.getAttribute("key1")== null ? "" : request.getAttribute("key1")%><br/>
EL表达式输出key的值:${key1}

</body>

说明:EL 表达式的格式是:${表达式}

EL 表达式在输出 null 值的时候,输出的是空串。jsp 表达式脚本输出 null 值的时候,输出的是 null 字符串

3、EL 表达式搜索域数据的顺序

EL 表达式主要是在 jsp 页面中输出数据。 主要是输出域对象中的数据。
当四个域中都有相同的 key 的数据的时候,EL 表达式会按照四个域的从小到大(pageContext->request->session->application)的顺序去进行搜索,找到就输出

<body>
    <%
        //往四个域中都保存了相同的key的数据。
       	      pageContext.setAttribute("key","pageContext");
        request.setAttribute("key","request");
        session.setAttribute("key","session");
        application.setAttribute("key","application");
    %>
    ${key}
</body>

4、EL 表达式输出 Bean 的普通属性,数组属性。List 集 合属性,map 集合属性

需求——输出 Person 类中普通属性,数组属性。list 集合属性和 map 集合属性。

Person 类:

//    i. 需求——输出 Person 类中普通属性,数组属性。list 集合属性和 map 集合属性
    private String name;
    private String[] hobby;
    private List<String> cities;
    private Map<String,Object> map;

输出的代码:

<%@ page import="loey.pojo.Person" %>
<%@ page import="java.util.*" %><%--
  Created by IntelliJ IDEA.
  User: It.me
  Date: 2020/10/3
  Time: 13:39
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <%
        Person person = new Person();
        person.setName("朴灿烈");

        person.setHobby(new String[]{"跳舞","唱歌"});

        List<String> list = new ArrayList<>();
        list.add("北京");
        list.add("上海");
        list.add("南京");
        person.setCities(list);

        Map<String, Object> map = new HashMap<>();
        map.put("key1","value1");
        map.put("key2","value2");
        map.put("key3","value3");
        person.setMap(map);

        pageContext.setAttribute("p",person);
    %>

    输出Person:${p}<br/>
    输出Person的name属性:${p.name}<br/><%--实际上调用的是Perosn类的getName()方法--%>
    输出Person的hobby数组属性值:${p.hobby[0]}<br/>
    输出Person的cities集合中的元素值:${p.cities}<br/>
    输出Person的List集合中个别元素值:${p.cities[0]}<br/>
    输出Person的Map集合:${p.map}<br/>
    输出Person的Map集合中某个key的值:${p.map.key1}<br/>

</body>
</html>

结果:
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值