JavaWeb——EL表达式
在JSP开发中,为了获取Servlet域对象中存储的数据,需要书写很多的Java代码,这样会使JSP页面看起来十分的混乱,难以维护,为此,在JSP2.0规范中提供了EL表达式。EL是Expression Language的缩写,它是一种简单的数据访问语言。
文章目录
- 一、初识EL
- 二、EL中的运算符
- 1.点运算符(.)
- 2.方括号运算符([])
- 3.算术运算符
- 4.比较运算符
- 5.逻辑运算符
- 6.empty运算符
- 7.条件表达式
- 8.“()”运算符
- 三、EL隐式对象
一、初识EL
EL表达式的语法,都是用“${ }”表示的。
关于EL表达式和使用Java代码的区别:
在Servlet中:
request.setAttribute("username","zhangsan");
request.setAttribute("password","123");
- 在JSP中使用Java脚本:
用户名:<%=request.getAttribute("username")%><br />
密码: <%=request.getAttribute("password")%>
- 使用EL表达式
用户名:${username}<br />
密码: ${password}
EL表达式不仅能获取Servlet中存储的数据,也能简化JSP中的代码量,使程序简单易维护,另外,当域对象里面的值不存在时,使用EL表达式获取域对象里面的值返回空字符串;而使用Java脚本方式获取,返回值是null,会报空指针异常。
二、EL中的运算符
1.点运算符(.)
EL表达式中的点运算符,用于访问JSP页面中某些对象的属性,如JavaBean对象、List集合、Array数组等。
<!-- 访问user对象的username属性-->
${user.username}
2.方括号运算符([])
EL表达式中的方括号运算符与点运算符的功能相同,都用于访问JSP页面中某些对象的属性。当获取的属性名中包含一些特殊符号,如“_”或“-”“?”等并非数字或字母的符号,就只能使用方括号运算符来访问该属性。
<!--不能使用${user.user_name}-->
${user["user_name"]}
- 点运算符和方括号运算符在某种情况下可以互换,如
${user.username}
等价于${user["username"]}
- 方括号运算符还可以访问List集合或数组中指定索引的某个元素,如表达式${users[0]}用于访问集合或数组中第一个元素。在这种情况下,只能使用方括号运算符,不能使用点运算符。
- 方括号运算符和点运算符可以相互结合使用,如
${users[0].username}
,表示访问集合或者数组中的第一个元素的username属性。
3.算术运算符
算数运算符 | 说明 | 算术表达式 | 结果 |
---|---|---|---|
+ | 加 |
${1+1}
|
2 |
- | 减 |
${1-1}
|
0 |
* | 乘 |
${1*1}
|
1 |
/ (或div) | 除 |
${1/1}或${1 div 1}
|
1 |
% (或mod) | 取余(取模) |
${1%1}或${1 mod 1}
|
0 |
4.比较运算符
EL表达式中的比较运算符用于比较两个操作数的大小,操作数可以是各种常量、EL表达式、EL变量,所有的运算执行结果都是布尔类型。
比较运算符 | 说明 | 算术表达式 | 结果 |
---|---|---|---|
==(或eq) | 等于 |
${10==2}或${10 eq 2}
|
false |
!=(或ne) | 不等于 |
${10!=2}或${10 ne 2}
|
true |
<(或lt) | 小于 |
${10<2}或${10 lt 2}
|
false |
>(或gt) | 大于 |
${10>2}或${10 gt 2}
|
true |
<=(或le) | 小于等于 |
${10<=2}或${10 le 2}
|
false |
>=(或ge) | 大于等于 |
${10>=2}或${10 ge 2}
|
true |
5.逻辑运算符
逻辑运算符 | 说明 | 算术表达式 | 结果 |
---|---|---|---|
&&(and)
|
逻辑与 |
${true&&false}或${true and false}
|
false |
|| (or)
|
逻辑或 |
${false||true}
|
true |
!(not)
|
逻辑非 |
${!=true} 或${not true}
|
false |
6.empty运算符
EL表达式中的empty运算符用于判断某个对象是否为null或"",结果为布尔类型,其基本的语法格式如下:
${empty var}
- var变量不存在(没有定义),结果返回true
- var变量的值为null,结果返回true
- var变量引用集合(Set、Map、List)类型对象,并且在集合对象中不包含任何元素时,结果返回true
7.条件表达式
EL表达式中条件运算符用于执行某种条件判断,类似于Java中的if-else语句,其语法格式如下:
${A?B:C}
表达式A的计算结果为布尔类型:
- 如果表达式A的计算结果为true,就执行表达式B,并返回B的值
- 如果表达式A的计算结果为false,就执行表达式C,并返回C的值
8.“()”运算符
EL表达式中的圆括号用于改变其他运算符的优先级。
三、EL隐式对象
不需要new就能使用的对象,自带的对象
- 作用域访问对象(EL隐式对象):
pageScope、requestScope、sessionScope、applicationScope
- 参数访问对象
- JSP隐式对象
隐含对象名称 | 描述 |
---|---|
pageContext
|
对应于JSP页面中的pageContext对象 |
pageScope
|
代表page域中用于保存属性的Map对象 |
requestScope
|
代表request域中用于保存属性的Map对象 |
sessionScope
|
代表session域中用于保存属性的Map对象 |
applicationScope
|
代表application域中用于保存属性的Map对象 |
param
|
表示一个保存了所有请求参数的Map对象 |
paramValues
|
表示一个保存了所有请求参数的Map对象,它对于某个请求参数,返回的是String类型数组 |
header
|
表示一个保存了所有HTTP请求头字段的Map对象 |
headerValues
|
表示一个保存了所有HTTP请求头字段的Map对象,返回的是String类型数组 |
cookie
|
用来取得使用者的cookie值,cookie的类型是Map |
initParam
|
表示一个保存了所有Web应用初始化参数的Map对象 |
JavaWeb——EL表达式相关推荐
- JavaWeb EL表达式, JSTL标签及过滤器综合学习
1.项目结构如右边图所示: (1)controller.filter包下面定义2个过滤器,EncodingFilter 类CheckUserFilter类(后面会有一个登陆验证的过滤器的测试学习), ...
- java 解析el表达式_Javaweb El表达式实例详解
EL全称 Expression Language(表达式语言),是jsp2.0最重要的特性之一,可以利用EL表达式来访问应用程序中的数据,来消除jsp页面中的java脚本. el表达式的语法 expr ...
- Java-Web JSP指令、javabean和EL表达式
目录 一.JSP指令 1.JSP指令概述 2.page指令 (1)pageEncoding和contentType (2)import (3)errorpage和isErrorpage (4)web. ...
- javaweb(09) EL表达式JSTL标签库(jsp相关,了解)
javaweb(09) EL表达式&JSTL标签库(jsp相关,了解) EL表达式 简介和基本使用 EL 表达式的全称是:Expression Language.是表达式语言. EL 表达式的 ...
- javaweb之EL表达式和JSTL(总体第七篇)
之前已经学习到我们Javaweb之Servlet,本文也是总体复习笔记的第七篇,有需要的朋友可以参考我主页的javaweb目录,参考其他笔记 一.EL语法学习 1.介绍搭建实验环境 (1)什么是EL表 ...
- el表达式 java_java基础学习:JavaWeb之EL表达式
其他更多java基础文章: java基础学习(目录) 一.EL表达式 EL 全名为Expression Language.JSP中可以使用EL表达式,EL表达式是用"${}"括起来 ...
- IT兄弟连 JavaWeb教程 EL表达式获取对象的属性以及数组的元素
使用${对象名.属性名} EL表达式语言可以使用点号运算符"."来访问对象的属性,例如表达式${customer.name}表示customer对象的name属性. 使用${对象名 ...
- javaweb学习总结(二十九)——EL表达式
一.EL表达式简介 EL 全名为Expression Language.EL主要作用: 1.获取数据 EL表达式主要用于替换JSP页面中的脚本表达式,以从各种类型的web域 中检索java对象.获取数 ...
- JavaWeb的jsp文件EL表达式简写优先级
如题 EL表达式仅写共享数据名时的查找优先级, 优先级顺序为pageContext,requestScope,sessionScope再是applicationScope 因为某些原因,仅写出后面三个 ...
最新文章
- html边框绕着图片,CSS 边框
- android 简易定时器
- 把一列数据分割成两列
- Android简单实现将手机图片上传到服务器中
- 前端学习(3311):redux的state hook对象
- RabbitMQ从初学到精通一
- python程序发布 ubuntu_发布和运行(ubuntu下python服务器)
- 前端系统学习篇之HTML
- linux socket closeconnection,求助:socket的Connection refused
- 从零开始搭建神经网络并将准确率提升至85%
- Citrix MCS桌面管理技术解读
- Ubuntu 安装arm-linux-gcc编译器
- 史上最全的微信小程序代码大全分享
- 基于ZigBee的城市照明监控系统网关节点的软硬件设计
- SAS: PROC IMPORT简单入门介绍
- 一图看懂16个英语时态
- charles限制网速
- 请你来说一下数字证书是什么,里面都包含那些内容
- 二线法和四线法测量电阻的原理及区别
- 类的定义,成员函数和内置成员函数
热门文章
- 程序员面试金典 - 面试题 16.21. 交换和(哈希set)
- LeetCode 171. Excel表列序号(26进制转10进制)
- NumPy快速入门--复制/视图/深拷贝
- wpf计算字符大小占像素_LCD作为终端显示字符串的过程
- c2c旅游springboot开源_重量级开源的商城和SpringBoot等项目看看有没有正好是你需要的...
- python中的__new__概念(工厂
- 卖萌屋学术站发布!通往高效刷论文之路
- 别再搜集面经啦!小夕教你斩下NLP算法岗offer!
- 神经网络激活函数=生物转换器?
- docker挂载文件躺过的坑