当前课程知识点:Web后端开发技术 > 第5章 表达式语言 > 5.1 el语法 > 5.1.1 EL语法
欢迎同学们回来继续学习
Web后端开发技术
在这一小节当中
我们将学习EL语法
EL语法在书写上是非常简单的
开始是一个英文的$符
然后后面是一对花括号
中间是表达式
我们需要注意的是
这里面一定使用英文的输入法
我们先看几个示例
这几个示例是比较简单的
我们看第1行代码
它输出的是一个字符串
那么这种常量可以直接输出
hello EL
第2个是输出一个23.5的数字
这个常量也直接输出
第3个是一个计算
23+5
它会把结果输出出来
接下来它是一个判断
12是否大于1
那么这个结果是一个逻辑值
是true
下面是一个条件运算符
它的结果是为3
下面使用的是empty
运算符
来判断 username的值
是否为空
那么这个运算符它的结果是一个逻辑值
如果为空
那么它就返回的是true
如果不为空
返回的是false
接下来EL表达式
它要将由username的值输出出来
假设在作用域当中有一个mooc这样
一个变量
那么它的值就可以在这里面把它输出出来
最后是在sessionScope域当中
取出来user这个对象
将它的sex值取出来
如果这个值是一个字符男
那么在这里就可以把它输出出来了
下面我们先介绍一下EL当中的常量
那么常量
类型有布尔常量
整型常量
浮点数常量
字符串常量
NULL常量
那么这些常量和Java当中
它的常量值是一样的
布尔常量就是true或fasle
整型常量与Java当中
它整型常量值是一样的
而浮点数常量与Java定义的
浮点数常量值也是一样的
这里面我就不再一 一介绍了
接下来我们说一下EL中的变量
EL中变量是通过EL引擎调用
PageContext
它的 findAttribute
这个方法
在作用域进行查找
它的语法就是一个$
一对花括号
里面是我们要查找的变量的名
这个变量名是存在作用域的
那么如果我们没有为它限定作用域
它会按照作用域范围的
由小到大的这样一个范围进行查找
首先它会从page页面域进行查找
如果找到了这样一个username的变量
它就返回了
如果没找到
它就继续向 request域去找
如果在request域当中找到了
这样一个username的变量
那么它就返回
如果还没找到它就继续向下找
最后找到application
应用域当中
如果最后还没有找到
那么它就返回一个null
在这之前我们知道在jsp
当中是可以声明变量的
那么在jsp当中的变量和这里
的变量是不一样的
在JSP当中的变量
它是存在于jspService
方法当中的变量
这个变量我们可以把它声明
赋值和获取
而对于EL中的变量
我们主要是用于获取
而不能进行设置
所以它们之间是不同的
接下来我们介绍一下
EL中使用的操作符
有两种
一种是点操作符
另外一种是方括号操作符
我们首先说一下点操作符
它的作用是用于访问对象的属性
我们先看一下
javaBean
在这个类当中有两个属性
一个是price
代表商品的单价
另外一个是 num
代表商品的数量
对于这两个属性有对应的
get和 set的方法
除此之外
下面还有一个
getTotalPrice
这样一个javaBean的属性
那么点操作符它是用于访问对象的
属性
那么我们看这两行代码
那么这两行代码我们看到这里面要取
出来product对象的
price属性
第2代码要取出来
totalPrice
属性
那么当我们这样编写代码的时候
它的实际工作过程对应于第1个
product . price
它实际上是调用了这个方法
对于第2行
project.totalPrice
它实际上是调用了这个方法
所以在这里面我们一定要注意
这个属性
写法
totalPrice
还有这price
这里面字母开始的第1个字母是小写的
然后对应这里面它应该是get某某方法
并且get之后的第1个字母是要大写的
除了用点操作符之外
还可以使用方括号
操作符
方括号
操作符
它也是用于访问对象的某个属性
在方括号之内属性名应该用双引号把
它括起来
我们看这样一个示例
那么这个示例在功能上面是和刚才
使用点操作符是一样的
也就是说实现了同样的功能
需要注意的是
而这里面使用的是说 方括号
然后使用的是双引号
把它括起来
方括号操作符
它在使用过程当中
除了具有点操作符所具有的功能之外
它还有一些特殊应用的场景
都包括哪些应用场景呢
第1个
当属性中含有点或者是英文这种短线的时候
我们就要使用它了
第2种情况
当我们访问集合或者是数组的时候
这里面就有一个序号的问题
那么点操作符就无能为力了
我们只能使用方括号操作符
比如这里面有个示例
使用方括号
操作符
第3种情况
当我们访问Map对象的key所对应的
value的时候
我们使用方括号操作符
这是比较方便的
最后我们说这个点操作符和方括号操作符
是可以结合使用的
我们看这样一个例子
在这个例子当中
我们看到这是users是一个集合
或者是一个数组
我要取它第1个元素
第1个元素的哪个属性是它的
username属性
这样就结合了方括号操作符和点操作符
的使用
接下来我们介绍一下EL的运算
运算符
第1个是算术运算符
它可以完成加减乘除和取余的操作
算术运算符大家应该是比较熟悉了
这里面我们就不做一 一的介绍了
关系运算符
关系运算符
我们看一下这张表
大家应该也非常熟悉
在 Java课程
或者在c++课程当中都会见到这样
一些符号
这里面我们需要说明一下
除了使用符号之外
还使用了英文的字母
简单说一下
等于
使用equals 就是eq
不等于
是使用感叹号等于
然后它的英文是not equals
所以是ne 小于
它的英文是less than
所以使用lt
大于
是great than
所以gt下面还有小于等于大于等于
道理是一样的
逻辑运算符有三种
逻辑与
逻辑或和逻辑非
除了使用这个符号之外
还可以使用英文单词and or和not
条件运算符
那么这个条件运算符和Java当中
条件运算符
这个原理是一样的
我们是判断表达式
如果这表达式为真
那么将取表达式A的值
如果为false
也就说为假
取表达式B的值
这就是条件运算符
我们看一个事例
在这个事例当中
我们去判断是否username
为空
如果为空
那么我们就显示游客如果不为空
则显示username的值
empty运算符
它用于判定表达式是否为null
结果也是一个逻辑值
它那语法
empty后面是表达式
这里面需要注意的
它是判断是否为空
如果为空
它将返回的是true
不空返回的是false
我们看这个示例
它将判断在sessionScope当中有没有一个
username
如果有
那么它就返回false
如果没有它返回true
好
这一小节我们就讲到这里
谢谢
-1.0 导学
--1.0.1 导学
-1.1 Web应用开发概述
--1.1.3 测试
-1.2 准备Java Web应用开发环境
--1.2.2 测试
-1.3 任务实现:Hello World Web项目
--1.3.2 测试
-1.4 小结
--1.4.1 小结
-本课程所有代码
--课程参考代码
-2.0 导学
--2.0.1 导学
-2.1 Servlet概述
--2.1.3 测试
-2.2 创建Servlet
--2,2,3 作业
-2.3 Servlet应用
--2.3.4 测试
-2.4 任务实现:某高校毕业生信息发布系统-注册与登录(Servlet版)
--2.4.3 测试
-2.5 ServletConfig接口
-2.6 ServletContext接口
-2.7 HttpServletRequest接口
--2.7.5 测验
-2.8 HttpServletResponse接口
--2.8.3 测试
-2.9 任务实现:某高校毕业生信息发布系统-简历添加
--2.9.1 任务实现:某高校毕业生信息发布系统-简历添加
-2.10 小结
-动画演示:Java Web应用服务器处理客户端请求的过程
-3.0 导学
--3.0.1 导学
-3.1 Cookie技术
--3.1.3 测试
-3.2 Session技术
--3.2.2 Session技术-Session技术应用购物车
--3.2.3 测试
-3.3 URL重写与隐藏表单域
--3.3.2 测试
-3.4 任务实现:某高校毕业生信息发布系统-简历修改
--3.4.1 任务实现:某高校毕业生信息发布系统-简历修改
-3.5 小结
--3.5.1 小结
-4.0 导学
-4.1 jsp概述
--4.1.2 测试
-4.2 脚本元素
--4.2.2 测试
-4.3 指令元素
--4.3.2 测试
-4.4 动作元素
--4.4.3 测试
-4.5 内置对象
--4.5.3 测试
-4.6 JavaBean
--4.6.3 测试
-4.7 任务实现:某高校毕业生信息发布系统-首页(JSP版)
--4.7.1 任务实现:某高校毕业生信息发布系统-首页(JSP版)
-4.8 小结
--4.8.1 小结
-5.0 导学
--5.0.2 测试
-5.1 el语法
--5.1.2 测试
-5.2 el隐含对象
--5.2.2 测试
-5.3 任务实现:某高校毕业生信息发布系统-学生详细信息展示
--5.3.1 任务实现:某高校毕业生信息发布系统-学生详细信息展示
--5.3.2 测试
-5.4 小结
--5.4.1 小结
-6.0 导学
--6.0.2 测试
-6.1 核心标签库
--6.1.5 测试
-6.2 任务实现:某高校毕业生信息发布系统-首页(JSTL版)
--6.2.1 任务实现:某高校毕业生信息发布系统-首页(JSTL版)
--6.2.2 测试
-6.3 小结
--6.3.1 小结
-7.0 导学
--7.0_导学
-7.1 过滤器
--7.1.3 测试
-7.2 监听器
--7.2.1.1与ServletContext相关的监听器
--7.2.4 测试
-7.3 任务实现:某高校毕业生信息发布系统-单态登录
--7.3.1 任务实现:某高校毕业生信息发布系统-单态登录
--7.3.2 测试
-7.4 小结
--7.4.1小结
-8.0 导学
--8.0_导学
-8.1 JDBC API
--8.1.2 测试
-8.2 JDBC API访问MySQL基本步骤
--8.2.2 测试
-8.3 任务实现:某高校毕业生信息发布系统-注册与登录
--8.3.1 任务实现:某高校毕业生信息发布系统-注册与登录(JDBC版)
--8.3.2 测试
-8.4 小结
--8.4.1小结
-9.0导学
--9.0导学
-9.1 技术准备
--9.1.5 测试.
-9.2 系统设计
-9.3 系统实现
-9.4 小结
--9.4.1小结





