【JavaWeb - 网页编程】九 EL 表达式与 JSTL 标签库


第九章 EL 表达式与 JSTL 标签库

创作日期:2021-12-28


9.1 EL 表达式简介

9.1.1 什么是 EL 表达式

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


9.1.2 EL 表达式的作用

        EL 表达式主要代替 jsp 页面中的表达式脚本在 jsp 页面中进行数据的输出,因为 EL 表达式在输出数据的时候,要比 JSP 的表达式脚本更加简介

<%-- PrintHtml.jsp --%>
<body>
<%
    request.setAttribute("key", "123");
%>
JSP 表达式脚本输出 key 的值为:<%= request.getAttribute("key")%><br>
EL 表达式输出 key 的值为:${key}
</body>


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

        EL 表达式主要是在 JSP 页面中输出数据,主要是输出域对象中的数据,当四个域对象中都有相同的 key 的数据的时候,EL 表达式会按照这四个域的范围由小到大的顺序进行搜索并输出,顺序为:pageContext 域,request 域,session 域 ,application 域

<%-- PrintHtml.jsp --%>
<body>
输出优先级为:pageContext 域,request 域,session 域 ,application 域
<%
    pageContext.setAttribute("key", "123");
    request.setAttribute("key", "123");
    session.setAttribute("key", "123");
    application.setAttribute("key", "123");
%>
</body>

9.1.4 EL表达式输出属性数据

EL 表达式支持输出 Bean 的普通属性,数组属性,List 集合属性,map 集合属性

演示:

创建测试类:

package com.jsp.text;

import java.util.Arrays;
import java.util.List;
import java.util.Map;

/**
 * @Description:测试类
 * @author: XFDQ.lmq
 * @create: 2022-08-11 18:01
 */
public class Person {
    private String name;
    private Integer[] Phones;
    private List<String> citys;
    private Map<String,Integer> results;

    public Person() {
    }

    public Person(String name, Integer[] phones, List<String> citys, Map<String, Integer> results) {
        this.name = name;
        Phones = phones;
        this.citys = citys;
        this.results = results;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer[] getPhones() {
        return Phones;
    }

    public void setPhones(Integer[] phones) {
        Phones = phones;
    }

    public List<String> getCitys() {
        return citys;
    }

    public void setCitys(List<String> citys) {
        this.citys = citys;
    }

    public Map<String, Integer> getResults() {
        return results;
    }

    public void setResults(Map<String, Integer> results) {
        this.results = results;
    }

    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", Phones=" + Arrays.toString(Phones) +
                ", citys=" + citys +
                ", results=" + results +
                '}';
    }
}
<%-- EL.jsp --%>
<body>
<%
    LinkedList<String> cityLinkedList = new LinkedList<>();
    cityLinkedList.add("China");
    cityLinkedList.add("America");
    cityLinkedList.add("Canada");

    HashMap<String,Integer> resultsHashMap = new HashMap<>();
    resultsHashMap.put("数学",92);
    resultsHashMap.put("语文",98);
    resultsHashMap.put("英语",90);

    Person person = new Person();
    person.setName("xfdq");
    person.setPhones(new Integer[]{151,159});
    person.setCitys(cityLinkedList);
    person.setResults(resultsHashMap);
    pageContext.setAttribute("person",person);
%>
    输出Person:${person}<br>
    输出Person的name属性:${person.name}<br>
    输出Person的phones属性:${person.phones[0]}<br>
    输出Person的citys属性:${person.citys[1]}<br>
    输出Person的results属性:${person.results.get("数学")}分<br>
</body>


9.2 EL 表达式的运算

语法:${ 运算表达式 },EL 表达式支持如下运算符:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

深山老Java

你的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值