Java课题笔记~ EL

news2024/11/25 12:58:58

1.EL

(1).JSP脚本的缺点

使用JSP脚本可以实现页面输出显示,那为什么还需要使用EL简化输出呢?

这是因为单纯使用JSP脚本与HTML标签混合,实现输出显示的方式存在一些弊端,归纳如下:

  • 代码结构混乱,可读性差

  • 脚本与HTML标签混合,容易导致错误

  • 代码不易维护

核心作用:

减少jsp中的java代码

[注意:el只能用在jsp中]

(2).EL表达式

(1)EL表达式

EL是Expression Language的缩写,它定义了一系列的隐含对象和操作符,使开发人员能够很方便地访问页面内容,以及不同作用域内的对象,而无须在JSP中嵌入Java代码,从而使得页面结构更加清晰,代码可读性更高,也更加便于维护。

(2)EL表达式的语法

语法:${EL表达式}

语法结构中包含"$"符号和”{}“括号,二者缺一不可。

使用EL表达式也非常简单,如${username}就可以实现访问变量username的值。

注意:使用EL表达式获取变量前,必须将操作的对象保存到作用域中。

此外,使用EL表达式还可以访问对象的属性,这就需要使用“.”操作符和“[ ]”操作符来完成。

  • “.”操作符

EL表达式通常由对象和属性两部分组成。因此采用与Java代码一样的方式,用“.”操作符来访问对象的属性。

例如:${news.title}可以访问news对象的title属性。

  • “[ ]”操作符

“[ ]”操作符的使用方法与“.”操作符类似,不仅可以用来访问对象的属性,还可以用于访问数组和集合。

例如:

①访问对象的属性:${news["title"]}可以访问news对象的title属性。

②访问数组:${newsList[0]}可以访问newsList数组中的第一个元素。

示例代码:

<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.Date" %>
<%@ page contentType="text/html;charset=UTF-8" language="java"%>
<html>
<head>
    <title>EL表达式</title>
</head>
<body>
<h1>EL表达式</h1>
<%
    String username = "tom";
    //将变量添加到作用域中
    request.setAttribute("username",username);
    request.setAttribute("student.name","张三");
    ArrayList list = new ArrayList();
    list.add("新冠疫情");
    list.add("俄乌战争");
    //将集合添加到作用域中
    request.setAttribute("list",list);
    //将日期对象添加到作用域中
    Date date = new Date();
    request.setAttribute("date",date);
%>
    //访问变量 <br>
    ${username}<br>
    //含有特殊字符的变量 <br>
    ${requestScope["student.name"]}<br>
    //访问集合 <br>
    ${list[1]}<br>
    //访问对象 <br>
    ${date.date}<br>
    //读取参数 (需要从地址栏传参数,例如:http://localhost:8088/ELDemo.jsp?num=1)<br>
    ${param.num}<br>
    //读取参数 (需要从地址栏传参数,例如:http://localhost:8088/ELDemo.jsp?num=1&hobby=a&hobby=b&hobby=c)<br>
    ${paramValues.hobby[2]}<br>
</body>
</html>

运行效果:

 

提示:

①使用“[ ]”操作符访问数据时,必须在属性名两侧使用双引号。

②EL表达式区分大小写。

③在使用EL表达式获取变量前,必须先将对象保存到作用域中。

表达式分类: (1) 普通表达式 (2) 读取单值(基本数据类型) (3) 读取多值(对象)

EL的隐含对象: 

 

(3).EL运算符

EL表达式支持多种运算符,这些运算符的使用方法与Java运算符非常类似。另外,在EL表达式中,为了避免一些运算符在使用时与HTML页面标签发生冲突,会采用其他符号进行替代。

 EL的运算符:

(1) 算术运算符

(2) 关系运算符

(3) 逻辑运算符

(4) Empty运算符

(5) 条件运算符

例子:${2 > 1 ? "yes" : "no" }

 

(4).EL的功能

对于EL的特点和作用,归纳总结如下:

  • 可用于获取JavaBean的属性。

  • 能够读取集合类型对象中的元素。

  • 可使用运算符进行数据处理。

  • 可屏蔽一些常见异常。

  • 可自动实现类型转换。

(5).EL表达式的作用域访问对象

JSP提供了4种作用域,分别是page、request、session和application。为了能够访问这4个作用域内的数据,EL表达式也分别提供了4种作用域访问对象来实现数据的读取。这4个作用域访问对象的比较如下:

 

当使用EL表达式访问某个属性值时,应当指定查找的范围。如果程序中未指定查找的范围,那么系统会自动按照page → request → session → application(从小到大)的顺序进行查找。

使用作用域访问对象读取属性值非常简单,只需要使用“作用域名称 .”方式即可实现。

总结:

EL从作用域/参数/信息头/初始化参数/cookie中获取数据,显示到JSP页面。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/881820.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

win11系统nvm管理多个node版本并踩坑

需求&#xff1a;公司用的老项目需要使用低版本node&#xff0c;但是自己想用最新的技术&#xff0c;需要使用高版本node&#xff0c;所以下了个nvm来管理多个node版本&#xff0c;进行切换使用。网上那么多nvm的教程为啥我还要写&#xff0c;因为我遇到的问题太离谱了&#xf…

Linux6.38 Kubernetes 集群存储

文章目录 计算机系统5G云计算第三章 LINUX Kubernetes 集群存储一、emptyDir存储卷2.hostPath存储卷3.nfs共享存储卷4.PVC 和 PV 计算机系统 5G云计算 第三章 LINUX Kubernetes 集群存储 容器磁盘上的文件的生命周期是短暂的&#xff0c;这就使得在容器中运行重要应用时会出…

半导体蚀刻系统市场预计从2021年的101亿美元增长到2028年的120亿美元,复合年增长率为2.5%。

半导体蚀刻设备是半导体製造过程中使用的设备。 化学溶液通过将晶片浸入化学溶液&#xff08;蚀刻剂&#xff09;中来选择性地去除半导体晶片的特定层或区域&#xff0c;化学溶液溶解并去除晶片表面所需的材料。 根据阿谱尔&#xff08;APO&#xff09;的统计及预测&#xff0c…

centos7安装erlang及rabbitMQ

下载前注意事项&#xff1a; 第一&#xff1a;自己的系统版本&#xff0c;centos中uname -a指令可以查看&#xff0c;el8&#xff0c;el7&#xff0c;rabbitMQ的包不一样&#xff01; 第二&#xff1a;根据rabbitMQ中erlang version找到想要下载rabbitMQ对应erlang版本&#x…

ABAP Der Open SQL command is too big.

ABAP Der Open SQL command is too big. DBSQL_STMNT_TOO_LARGE CX_SY_OPEN_SQL_DB 应该是选择条件中 维护的条件值条数太多了

五个独特且有趣的ChatGPT指令

今天分享5个很实用的指令&#xff0c;这几个指令很多时候对我们输出内容的连贯性、文章风格、创意性等方面有着决定性的作用。 目录 第一个&#xff1a;Max tokens&#xff08;最大令牌&#xff09; 第二个&#xff1a;Top_p(控制采样) 第三个&#xff1a;Presence_penalty …

视频汇聚平台EasyCVR视频监控播放平台WebRTC流地址无法播放的问题解决方案

开源EasyDarwin视频监控TSINGSEE青犀视频平台EasyCVR能在复杂的网络环境中&#xff0c;将分散的各类视频资源进行统一汇聚、整合、集中管理&#xff0c;在视频监控播放上&#xff0c;TSINGSEE青犀视频安防监控汇聚平台可支持1、4、9、16个画面窗口播放&#xff0c;可同时播放多…

msvcp140.dll是什么东西?msvcp140.dll丢失的解决方法

修复msvcp140.dll文件的过程可能会让人感到有些困扰&#xff0c;尤其是对于不太熟悉计算机维护的人来说。当出现msvcp140.dll文件缺失的错误提示时&#xff0c;我意识到这是一个关键的问题&#xff0c;因为该文件是许多应用程序正常运行所必需的。因此&#xff0c;我立即采取行…

实现文件的拖放功能

文章目录 实现文件的拖放功能1 拖放文件至QT窗口1.1 实现方法1.2 效果演示 2 拖放文件至python脚本2.1 实现方法2.2 效果演示 实现文件的拖放功能 试想一下&#xff0c;我们希望将一个python项目文件夹或者脚本在IDE中打开&#xff0c;无论是去IDE中选择文件夹路径&#xff0c;…

神经网络基础-神经网络补充概念-08-逻辑回归中的梯度下降算法

概念 逻辑回归是一种用于分类问题的机器学习算法&#xff0c;而梯度下降是优化算法&#xff0c;用于更新模型参数以最小化损失函数。在逻辑回归中&#xff0c;我们使用梯度下降算法来找到最优的模型参数&#xff0c;使得逻辑回归模型能够更好地拟合训练数据。 逻辑回归中的梯…

.Net 6启用SDK声明隐式全局引用

之前要引用System.xxx相关的组件时&#xff0c;需要每个页面都using&#xff0c;后来出了global using但每个项目还是要添加上&#xff0c;比较麻烦。 现在只需要在项目属性里&#xff0c;勾选以下“隐式全局使用”选项即可免于手动使用using引用这些系统的SDK相关组件。 也可…

成都市加快大模型创新应用,推动人工智能产业高质量发展

在2023年8月份&#xff0c;成都市发布了《成都市加快大模型创新应用推进人工智能产业高质量发展的若干措施》&#xff0c;这些措施为成都市在人工智能领域的发展指明了方向&#xff0c;为产业的高质量发展提供了政策支持和创新环境。 这些措施的积极意义不言而喻。首先&#xf…

电脑——IT人必不可少的重要武器

电脑——IT人必不可少的重要武器 我的战友我的维护硬件软件杀毒软件 有用技巧需要避免的行为其他补充 我的战友 我的“战友”是联想台式机&#xff0c; W i n 10 Win10 Win10的操作系统&#xff0c;它的内存仅有 8 G B 8GB 8GB&#xff0c; C P U CPU CPU也只是 i 5 i5 i5&…

通过css设置filter 属性,使整个页面呈现灰度效果,让整个网页变灰

通过css设置filter 属性设置页面整体置灰 效果图: 通过设置 filter 属性为 grayscale(100%)&#xff0c;页面中的所有元素都会被应用灰色滤镜效果&#xff0c;使整个页面呈现灰度效果。 <style type"text/css"> html { filter: grayscale(100%); -webkit-f…

离线安装.NET Framework 3.5

下载资源包 链接&#xff1a;https://pan.baidu.com/s/1t7OlEXwNDV8YtA7-YuQRSw 提取码&#xff1a;qe8i 解压 NetFx3.cab 文件 然后管理员方式打开cmd命令窗口 dism.exe /online /add-package /packagepath:C:\你的解压路径\NetFx3 里面输入你解压好的文件夹路径 等待添加…

如何做好商务英语翻译,商务英语的翻译方法有哪些

我们知道&#xff0c;商务英语涉及贸易、商务、营销财务等信息&#xff0c;呈现出的语言专业性强&#xff0c;翻译力求专业化。那么&#xff0c;如何做好商务英语翻译&#xff0c;商务英语的翻译方法有哪些&#xff1f; 业内人士指出&#xff0c;为了做好商务英语翻译&#xff…

正中优配:炒股如何降低成本?有什么技巧?

众所周知&#xff0c;股票交易是需要收取各式各样的手续费或许其他费用的&#xff0c;所以假如能够下降交易本钱是出资者炒股时着重考虑的问题。那么炒股如何下降本钱&#xff1f;有什么技巧&#xff1f;下面就由正中优配为我们剖析&#xff1a; 下面是下降炒股交易本钱的方法&…

安卓逆向 - 某严选app sign算法还原

本文仅供学习交流&#xff0c;只提供关键思路不会给出完整代码&#xff0c;严禁用于非法用途&#xff0c;若有侵权请联系我删除&#xff01; 目标app: 5ouN5ouN5Lil6YCJMy45LjY 目标接口&#xff1a;aHR0cHM6Ly9hcGkubS5qZC5jb20vYXBp 一、引言 1、本篇分析某二手交易平台 …

常见的功耗曲线预处理方法

滤波 电子设备的功耗信息可以由电路运行时的电压、电流和电路的阻抗联合计算得到&#xff0c;而且纯电阻运行期间的功耗会转换为热能。在研究中&#xff0c;一个器件的功耗与整个加密设备的功耗成正相关&#xff1b;若该期间的功耗增加&#xff0c;则整个加密设备的功耗也成一定…

具身智能:融合感知、思考与行动的未来之路

在当今科技飞速发展的时代&#xff0c;具身智能&#xff08;Embodied Intelligence&#xff09;作为一种新兴的概念&#xff0c;引起了广泛的关注和研究。具身智能将感知、思考和行动紧密结合起来&#xff0c;为机器人和智能系统带来了前所未有的能力和潜力。本文将介绍具身智能…