JSP中的EL 表达式

JSP中的EL 表达式

什么是 EL 表达式,EL 表达式的作用?

EL 表达式的全称是:Expression Language。是表达式语言。
EL 表达式的什么作用:EL 表达式主要是代替 jsp 页面中的表达式脚本在 jsp 页面中进行数据的输出。
因为 EL 表达式在输出数据的时候,要比 jsp 的表达式脚本要简洁很多。


    表达式脚本输出 key 的值是:

    EL 表达式输出 key 的值是:${key}

JSP中的EL 表达式

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

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

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


    ${ key }

JSP中的EL 表达式

注释掉pageContext:

JSP中的EL 表达式

四个域的大小:pageContext

按照从小到大的顺序进行搜索然后输出。

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

例:输出 Person 类中普通属性,数组属性。list 集合属性和 map 集合属性。

Person 类:

public class Person {
    // Person 类中普通属性,数组属性。 list 集合属性和 map 集合属性。
    private String name;
    private String[] phones;
    private List cities;
    private Map map;

    public Person() {

    }

    public int getAge() {
        return 21;
    }

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

    public void setPhones(String[] phones) {
        this.phones = phones;
    }

    public void setCities(List cities) {
        this.cities = cities;
    }

    public String getName() {
        return name;
    }

    public String[] getPhones() {
        return phones;
    }

    public List getCities() {
        return cities;
    }

    public Map getMap() {
        return map;
    }

    public void setMap(Map map) {
        this.map = map;
    }

    public Person(String name, String[] phones, List cities, Map map) {
        this.name = name;
        this.phones = phones;
        this.cities = cities;
        this.map = map;
    }
}

jsp输出代码:

     cities = new ArrayList();
        cities.add(" 大连");
        cities.add(" 沈阳");
        cities.add(" 北京");
        person.setCities(cities);
        Map map = new HashMap<>();
        map.put("key1","value1");
        map.put("key2","value2");
        map.put("key3","value3");
        person.setMap(map);
        pageContext.setAttribute("p", person);
    %>
    输出 Person:${ p }
    输出 Person 的 name 属性:${p.name}
    输出 Person 的 phones 数组属性值:${p.phones[2]}
    输出 Person 的 cities 集合中的元素值:${p.cities}
    输出 Person 的 List 集合中个别元素值:${p.cities[2]}
    输出 Person 的 Map 集合: ${p.map}
    输出 Person 的 Map 集合中某个 key 的值: ${p.map.key3}
    输出 Person 的 age 属性:${p.age}

结果:

JSP中的EL 表达式

EL 表达式 –运算

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

关系运算

关系运算符 说明 范 例 结果 == 或 eq 等于 ${ 5 == 5 } 或 ${ 5 eq 5 } true != 或 ne 不等于 ${ 5 !=5 } 或 ${ 5 ne 5 } false < 或 lt 小于 ${ 3 < 5 } 或 ${ 3 lt 5 } true > 或 gt 大于 ${ 2 > 10 } 或 ${ 2 gt 10 } false

逻辑运算

逻辑运算符 说 明 范 例 结果 && 或 and 与运算 ${ 12 == 12 && 12 < 11 } 或 ${ 12 == 12 and 12 < 11 } false || 或or 或运算 ${12 == 12 || 12

Original: https://www.cnblogs.com/kohler21/p/16632827.html
Author: 愚生浅末
Title: JSP中的EL 表达式

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/599160/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Redis与Python连接实例

    2022-09-22 1、 Redis与Python建立连接之前需要先安装”Redis”安装包: 在ubantu中,打开终端,输入命令: sudo pip …

    数据库 2023年6月14日
    0113
  • mysqlCRUD

    &#x67E5;&#x8BE2;&#x4E00;&#x4E2A;&#x6BB5;&#x91CC;&#x6240;&#…

    数据库 2023年6月9日
    071
  • spring-boot-starter-actuator

    使用: HTTP方法 路径 描述 鉴权 GET /autoconfig 查看自动配置的使用情况 true GET /configprops 查看配置属性,包括默认配置 true G…

    数据库 2023年6月16日
    082
  • 分享一直在维护简单实用高效的C++Socket框架Swa-server(开源+源码)

    Swa-server 开源框架* 适用于中小型游戏,如:养成、RPG、棋牌等;应用软件,如:聊天室等* 已经封套好底层socket管理,sql请求处理、数据加密解密* 拿来即可开工…

    数据库 2023年6月14日
    091
  • 工程师成长阶段感悟

    从 2013 年陆续开始做软件研发工作, 去过不少公司, 做过一些类型项目, 桌面开发, web 开发, 手游开发, 端游开发, 棋牌, 视频云服务, 电商. 刚毕业那会在国企, …

    数据库 2023年6月9日
    097
  • 单点登录(SSO)

    1 基础知识 单点登录机制(SSO)允许用户登录应用程序一次,并访问所有相关的系统,而不需要单独登录它们。 由于 SSO,用户只需登录一次即可使用服务,并自动登录到所有相关应用程序…

    数据库 2023年6月14日
    0159
  • GreatSQL 开源数据库 & NVIDIA InfiniBand存算分离池化方案:实现高性能分布式部署

    NVIDIA InfiniBand是一种被广泛使用的网络互联技术,基于IBTA(InfiniBand Trade Association)而定义的高带宽、低延时、低CPU占用率、大…

    数据库 2023年5月24日
    072
  • Springboot学习笔记(一)—— 安装

    springboot越来越流行了,相比较于springMVC,springboot采用了一种约定大于配置的理念,可以一键安装,一键运行,一键部署,内置tomcat,省去了一大堆配置…

    数据库 2023年6月9日
    0101
  • AspNetCoreapi 使用 Docker + Centos 7部署

    好久没有更新文章了,前段时间写了一系列的文章放到桌面了,想着修修改改,后来系统中勒索病毒了还被公司网络安全的抓到是我电脑,后来装系统文章给装丢了。然后好长一段时间没有写了。 今天记…

    数据库 2023年6月11日
    095
  • windows安装mysql8.0.29(ZIP解压安装版本)

    一. 下载mysql 8.0.29软件包 二. 解压,初始化安装 1,打开下载后文件所在目录,使用解压软件解压,打开文件夹!(如图,文件路径不要出现中文!) 2,创建my.ini文…

    数据库 2023年6月16日
    082
  • VSCode快捷键

    基础编辑 作用 WINDOWS 剪切行 Ctrl + X 复制行 Ctrl + C 向上/向下移动行 Alt + ↑↓ 向上/向下复制行 Shift + Alt + ↑↓ 删除行 …

    数据库 2023年6月6日
    0142
  • java XML标记语言

    可扩展标记语言( Extensive Markup Language),标签中的元素名是可以自己随意写,可拓展是相对于html来说 标记语言:由一对尖括号括起来 用来当做配置文件 …

    数据库 2023年6月16日
    077
  • Javaweb-JSP详解

    一、什么是JSP Java Server Pages:Java服务器端页面,和Servlet一样,用于动态web技术 最大的特点: 写JSP就像在写HTML 区别: HTML只给用…

    数据库 2023年6月16日
    090
  • leetcode 101. Symmetric Tree 对称二叉树(简单)

    一、题目大意 给你一个二叉树的根节点 root , 检查它是否轴对称。 示例 1: 输入:root = [1,2,2,3,4,4,3]输出:true 示例 2: 输入:root =…

    数据库 2023年6月16日
    079
  • SpringMvc(三)- CRUD

    1、springMvc的form表单 1.1 标签 1.2 标签 使用springMvc的form表单,快速开发表单及数据自动回显; 原理:在 数据模型中添加一个 参数名为 com…

    数据库 2023年6月16日
    096
  • MySQL实战45讲 16

    16 | “order by”是怎么工作的? 以市民表为例,假设要查询城市是”杭州”的所有人名字,并且按照姓名 排序返回前 1000…

    数据库 2023年6月14日
    097
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球