文章目录

  • EL是什么?
  • 为什么使用EL?
  • EL示例
  • EL操作符
  • EL的关系运算符和逻辑运算符
  • EL表达式的隐式对象(不需要new就能使用的对象, 自带的对象)

EL是什么?

Expression Language ,可以替代JSP贝面中的JAVA代码。

为什么使用EL?

传统的在JSP中用java代码显示数据有一些弊端他们使得代码更加复杂,比如: 类型转换、 需要处理null、代码参杂 ,EL可以很好的解决这些问题。

EL示例

$ {域对象.域对象中的属性.属性.属性.级联属性]

$ {requestScope.student.address.schoolAddress}

EL操作符

点操作符. :使用方便

中括号操作符[ ]:功能强大:可以包含特殊字符(. 、-) , 可以访问数据、获取数组元素、获取变量值,例如存在变量name,则可以$ {requestScope [name]}

需要注意的是,如果使用中括号操作符里面的值不是变量值,则需要加单引号或者双引号。

EL的关系运算符和逻辑运算符

值得说一下的是Empty运算符

判断一个值如果为null或者不存在则返回true,否则返回fales

举个例子,假设我们定义了name的值为a,没有定义age的值,且定义了number的值为null,那么以下代码的输出结果则为false、true、true

${ empty requestScope[ " name"] } 不存在的值: ${ empty requestScope["age"] }、 ${ empty requestScope . number}

EL表达式的隐式对象(不需要new就能使用的对象, 自带的对象)

  • 作用域访问对象(EL域对象) :

1.pageScope 2.requestScope

3.sessionScope 4.applicationScope

//假设前面定义了一个sessionKey,那么通过以下方式取值${sessionScope.sessionKey}

如果sessionKey不指定域对象,则默认会根据从1到4的顺序依次取值

  • 参数访问对象

用于获取表单数据

以前JSP获取表单数据是这样子拿的

 (request. getParameter ()、request. getParameterValues() )

EL这样子拿

$ {param} 、$ {paramValues}
  • JSP隐式对象:pageContext

在jsp中可以通过pageContext.获取其他的jsp隐式对象;

通常我们获取Session对象是这样获取

$ {pageContext. getSession()}

但在EL里面,可以把get和括号去掉,然后首字母变小写,就可以拿到Session对象,其他对象也一样。

 $ {pageContext. session}

同样,可以使用此方法级联获取其他方法

$ ipageContext.request.serverPort}

今天的分享就到这里,希望对大家有所帮助!

el 能否定义作用域变量_EL表达式语法简介及其使用相关推荐

  1. 使用 el 能否定义作用域变量_Jsp之El表达和JSTL标签库

    传统获取作用数据案例 <% request.setAttribute("str", "test");//往作用域中进行数据的存储 User user = ...

  2. el 能否定义作用域变量_python命名空间和作用域

    一.命名空间 1.定义:命名空间(Namespace)是从名称到对象的映射 2.实现:大部分的命名空间都是通过 Python 字典来实现的 3.目的:命名空间提供了在项目中避免名字冲突的一种方法 4. ...

  3. el 能否定义作用域变量_Python 基础知识全篇-命名空间和作用域

    命名空间 先看看官方文档的一段话: A namespace is a mapping from names to objects.Most namespaces are currently imple ...

  4. java el表达式原理_EL表达式详解

    @[TOC]EL 1.EL简介 1.1为什么使用EL? EL可以简化JSP中的表达式代码 1.2EL全称: Expression Language,是jsp内置的表达式语言 1.3EL作用: 访问域中 ...

  5. Go 学习笔记(6)— 变量定义、变量声明、变量作用域

    1. 变量定义 Go 语言变量名由字母.数字.下划线组成,其中首个字符不能为数字.声明变量的一般形式是使用 var 关键字: var varName dataType [= value] Go 语言和 ...

  6. 利用抽象语法树检查Python中“未定义”的变量名

    其实,Python是一种真正的动态语言,代码中的变量名本没有"声明"或"定义"的说法,语言本身也没有提供声明或定义变量的特殊语法(global除外).对程序员来 ...

  7. python 全局变量使用报错没有定义_Python变量作用域代码解析

    本篇文章小编给大家分享一下Python变量作用域代码解析,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. 特点 python的作用域是静态的,在源代码中 ...

  8. python定义字符串变量有两种常用方式_Python 1基础语法二(标识符、关键字、变量和字符串)...

    一.标识符 标识符就是程序员自己命名的变量名.名字需要有见名知义的效果,不要随意起名 :比如 a=1 a是个变量,a这个变量名属于标识符 1 company = '小米 2 employeeNum = ...

  9. java数据类型_Java 变量、表达式和数据类型详解

    数据类型 一.变量 变量: 表示存储空间,可用来存放某一类型(整数.小数...)的数据,没有固定值,变量值是可变的,可重复使用,也可以用来存储某种类型的未知数据. 变量的特点: ① 占据内存中的一块存 ...

  10. C语言学习笔记07-1-语句结构:选择/循环(附三元运算符;DevC可以for定义临时变量的设置;continue、break、return;goto语句简单说明)

    选择/分支 与 循环/重复 语句结构 本质与流程图的三种结构类似,只是C语言没有until型循环,不难理解.文末捎带说一下goto语句. 结构化语句可以实现程序单一出口,goto 是非结构化的,会打乱 ...

最新文章

  1. 北京工业大学计算机科学与技术学科评估,本次学科评估进步最大学校之一——北京工业大学...
  2. 【实验吧】CTF_Web_简单的SQL注入之1
  3. Windows下查找文件或文件夹被哪个进程占用
  4. 月活675万 三翼鸟以三大能力“重建”行业赛道
  5. MySQL查询昨天的数据
  6. Linux下redis安装与使用
  7. 电商咄咄逼人的黑色星期五促销横BANNER设计模板
  8. SpringCloud 服务网关 Zuul 自定义路由和排除路由配置
  9. ubuntu使用之-rime
  10. 测试自动化普遍存在的问题
  11. WIFI内部通话系统技术解决方案
  12. Apache LoadModule php5_module 配置
  13. 《信号与系统》解读 第1章 信号与系统概述-6:系统对时域信号的基本运算与基本变换---幅度、加法、乘法、积分、微分、时延、反转、混合
  14. 理解稀疏编码sparse coding
  15. 第二讲 综合评价分析—TOPSIS法
  16. js动态添加多个元素
  17. GoldenDict启动进入后台 Ubuntu
  18. 2021年全球自动浓缩咖啡机行业调研及趋势分析报告
  19. 热门招聘丨 XTransfer史上最全产品技术岗位公开招聘
  20. Linux/ubuntu深度学习,查看cuda、cudnn、显卡、驱动的版本的命令

热门文章

  1. httpclient 无信任证书使用https
  2. ANT的环境搭建和开发
  3. UploadBean实现文件上传(转)
  4. 书店管理系统(C++初学者友好版)
  5. vue+webpack5项目中全局引入scss
  6. vue点击下载图片的实现
  7. Express框架学习笔记-express路由参数
  8. android tv tts,TTS发音问题
  9. join为什么每个字符都分割了 js_2019JS必看面试题
  10. apache如何加载系统环境变量_游学电子:windows10系统如何用cmd指令设置环境变量...