EL简介

EL简介

表达式语言是JSP 2.0的一个新特性,全名为Expression Language,简称EL。EL能实现对pageContext对象、session对象、request对象等存储对象的简化访问,能够简洁地访问请求参数、Cookie和其他请求数据,即EL可以很方便地访问大多数JSP内置的隐含对象,从而简化编程。此外,EL还可以简化对JavaBean属性和集合元素的访问。
EL语法很简单,使用非常方便。其语法格式如图7.1所示。
在这里插入图片描述

我们先来看几个使用EL表达式的示例:
${ 1+2+3 } //计算1+2+3的值并将结果返回
${ username } //查找并返回username的值
${ user.name } //访问JavaBean对象user的属性name

EL语言中操作对象时,可以非常简单地使用各种算术、关系、逻辑或空值测试运算符,简化操作运算。如果要针对不同情况和条件进行输出不同的信息,根本不再需要采用Java语言编程,就可以轻松实现条件化输出,从而消除了大部分类型转换的需要,同时也省略掉很多将字符串解析成数字的代码,实现了自动类型转换。例如,实现将用户输出的参数加5后的和输出到页面上这一功能,使用JSP传统语法的具体代码如图7.2所示。
在这里插入图片描述
而使用EL实现同样的功能只需要如下简单的一行代码:
count: ${ param.count + 5}

大多数Java Web服务器都是默认支持EL的。对于单个JSP页面,可以使用page指令来设置JSP页面是否支持EL。JSP页面默认支持EL,如果不支持的话,我们可以通过设置page指令的isELIgnored属性为false,来实现对EL的支持。其具体格式如图7.3所示。
在这里插入图片描述
注意:isELIgnored属性表示是否忽略EL。由于我们需要使用EL,所以我们将其设置为false。

而对于整个JSP应用,要修改Web应用的web.xml配置文件来设置是否支持EL。如果要使整个JSP应用都支持EL,则设置元素的子元素的值为false。具体格式如图7.4所示。
在这里插入图片描述
注意:el-ignored属性表示整个JSP应用是否支持EL。由于我们需要使用EL,所以我们也将其设置为false。
EL应用
在JSP中使用表达式语言,可以大大简化JSP开发的工作量。下面我们就从EL在运算符求值、访问作用域变量以及EL内置对象和函数几方面的应用来看EL是如何实现代码简化的。
EL运算符求值
EL中的运算符包括算术运算符(+、-、*、/)、关系运算符(>、<)和逻辑运算符(&&、||、!),还有empty运算符用来判断值是否为空。EL中的运算符如表7.1所示。

运算符代表运算运算符代表运算
+加(算术)>、gt大于(比较)
-减(算术)<、lt小于(比较)
*乘(算术)<=、le小于等于(比较)
/、div除(算术)>=、ge大于等于(比较)
%、mod取模(算术)==、=等于(比较)
&&、and与(逻辑)!=、ne不等于(比较)
||、or或(逻辑)x?y:z条件求值
!、not非(逻辑)empty检查是否为空

EL内置对象
我们在第2章曾经介绍过JSP的9个内置对象,在EL中也有自己的内置对象。它们共有11个,按功能可以大致分为3类。这11个内置对象的名称和具体说明如表7.2所示。

第一类:pageContext对象。可以用来访问JSP其他8个内置对象pageContextjavax.servlet.ServletContext可以用于访问JSP的隐含对象
第二类:用于访问环境信息的对象cookiejava.util.Map映射cookie名到单个cookie对象
第二类:用于访问环境信息的对象initParamjava.util.Map映射上下文初始化参数名称到单个值
第二类:用于访问环境信息的对象headerjava.util.Map映射请求头名称到单个字符串数值
第二类:用于访问环境信息的对象paramjava.util.Map映射请求参数名到单个字符串参数值
第二类:用于访问环境信息的对象headerValuesjava.util.Map映射请求头名称到字符串数组
第二类:用于访问环境信息的对象paramValuesjava.util.Map映射请求参数名到字符串数组
第三类:用于访问作用域范围的内置对象applicationScopejava.util.Map映射应用程序范围的变量名到其值
第三类:用于访问作用域范围的内置对象sessionScopejava.util.Map映射会话范围的变量名到其值
第三类:用于访问作用域范围的内置对象requestScopejava.util.Map映射请求范围的变量名到其值
第三类:用于访问作用域范围的内置对象pageScopejava.util.Map映射页面范围的变量名到其值

EL函数
表达式语言允许用户自定义函数。此函数必须采用public类中的public static方法编写并要映射到TLD标签库文件中。EL函数的定义语法格式如图7.14所示。
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值