一.什么是EL表达式?
EL(Expression Language) 是为了使JSP写起来更加简单。表达式语言的灵感来自于 ECMAScript 和 XPath 表达式语言,它提供了在 JSP 中简化表达式的方法,让Jsp的代码更加简化。
二.EL表达式的语法格式
在JSP页面的任何静态部分均可通过:${expression}来获取到指定表达式的值
三.EL表达式的主要语法
1.[ ]与.运算符
EL 提供“.“和“[ ]“两种运算符来存取数据。
当要存取的属性名称中包含一些特殊字符,如 . 或 - 等并非字母或数字的符号,就一定要使用“[ ]“。
如果要动态取值时,就可以用“[ ]“来做,而“.“无法做到动态取值。
2.变量
EL存取变量数据的方法很简单,例如:${username}。它的意思是取出某一范围中名称为username的变量。
因为我们并没有指定哪一个范围的username,所以它会依序从Page、Request、Session、Application范围查找。
假如途中找到username,就直接回传,不再继续找下去,但是假如全部的范围都没有找到时,就回传""。EL表达式的属性如下:
属性范围在EL中的名称 | |
Page | PageScope |
Request | RequestScope |
Session | SessionScope |
Application | ApplicationScope |
3.操作符
JSP 表达式语言提供以下操作符,其中大部分是 Java 中常用的操作符:
术语 | 定义 |
---|---|
算术型 | +、-(二元)、*、/、div、%、mod、-(一元) |
逻辑型 | and、&&、or、||、!、not |
关系型 | ==、eq、!=、ne、<、lt、>、gt、<=、le、>=、ge。可以与其他值进行比较,或与布尔型、字符串型、整型或浮点型文字进行比较。 |
空 | empty 空操作符是前缀操作,可用于确定值是否为空。 |
条件型 | A ?B :C。根据 A 赋值的结果来赋值 B 或 C。 |
4.隐式对象
JSP 表达式语言定义了一组隐式对象,其中许多对象在 JSP scriplet 和表达式中可用:
pageContext | JSP 页的上下文。它可以用于访问 JSP 隐式对象,如请求、响应、会话、输出、servletContext 等。例如,${pageContext.response} 为页面的响应对象赋值。 |
三.EL表达式的特点
(1)EL语法简单,⽅便
(2)EL可以与JSTL结合使⽤,也可以和JavaScript语句结合使⽤。
(3)EL可以⾃动转换类型。
(4)EL既可以访问⼀般的变量,也可以访问JavaBean中的属性和嵌套属性、集合对象。
(5)EL中可以执⾏算术运算、逻辑运算、关系运算和条件运算等。
(6)EL中可以获得命名空间(PageContext对象,他是页⾯中所有其他内置对象的最⼤范围的集成对象,通过它可以访问其他内置对 象)。
(7)EL中在进⾏除法运算时,如果除数是0,则返回⽆穷⼤Infinity,⽽不返回错误。
(8)EL中可以访问JSP的作⽤域(request、session、application以及page)
(9)扩展函数可以与Java类的静态⽅法进⾏映射。
四.EL表达式的优点
1.代码量小,并且不需要使用尖括号;
2.支持从pageContext,request,session,application中取值,它会自动检查四个作用域,不需要特别指定;
3.如果变量不存在,会输出空字符串"",而不是null,省去了手工判断的工作。