EL表达式详解:取值与方法调用

需积分: 50 3 下载量 67 浏览量 更新于2024-07-28 收藏 248KB PDF 举报
"EL表达式语法,主要讲解了EL表达式的基本概念、分类以及在JSP2.1中的应用,由mErcy翻译自JSP2.1 EL规范。" EL(Expression Language),是JavaServer Pages(JSP)技术中的一个强大功能,它提供了一种简洁的方式来访问和操作应用程序上下文中的数据。EL表达式主要用于简化JSP页面中的数据绑定和逻辑处理,减少页面上的Java代码,提升可读性和维护性。 1. EL表达式类型 - **Eval-expression**:以`${expr}`或`#{expr}`形式出现,两者在解析和计算上并无本质区别,但在J2EE层面上有不同的语义。`${expr}`通常在JSP页面编译时计算,称为直接计算;而`#{expr}`是延迟计算,只有在需要时才会进行计算,这在处理复杂逻辑和CDI(Context and Dependency Injection)集成时特别有用。 2. **Literal-expression**:字面量表达式,直接表示一个固定值,如字符串、数字或布尔值等。 3. **Composite expressions**:组合表达式,多个EL表达式组合在一起,形成更复杂的逻辑或运算。 4. **取值表达式(Eval-expression)的计算** - 当eval-expression解析为取值表达式时,它可以被计算为左值(lvalue)和右值(rvalue)。左值通常是指变量或属性,而右值是赋值操作符右边的表达式结果。EL表达式支持赋值操作,允许在表达式中修改数据。 5. **方法表达式**:除了取值,EL还支持调用对象的方法,通过`.`或`[]`操作符可以访问对象的属性或方法。例如,`user.getName()`或`list[0]`。 6. **类型转换**:EL自动进行类型转换,将表达式的结果转换为期望的类型,如字符串转整数、布尔值等。 7. **运算符支持**:EL提供了丰富的运算符集,包括算术运算符(+,-,*,/,%),比较运算符(==,!=,<,>,<=,>=),逻辑运算符(&&,||,!),以及成员运算符(in,not in)等。 8. **作用域**:EL可以访问四个基本作用域内的对象:page,request,session和application。这些作用域分别对应于HTTP请求生命周期的不同阶段。 9. **EL与JSP标签**:EL表达式经常与JSP标准标签库(JSTL)结合使用,提供更强大的功能,如条件判断、循环、XML处理等。 EL表达式是JSP和Java Web开发中的核心组件,它的简洁语法和强大的功能使得开发者能够更专注于业务逻辑,而不是底层的数据访问细节。理解并熟练运用EL表达式,可以极大地提高JSP页面的开发效率和代码质量。
2009-12-24 上传
EL表达式 (详解) EL表达式 1、EL简介 1)语法结构 ${expression} 2)[]与.运算符 EL 提供.和[]两种运算符来存取数据。 当要存取的属性名称中包含一些特殊字符,如.或?等并非字母或数字的符号,就一定要使用 []。 例如: ${user.My-Name}应当改为${user["My-Name"] } 如果要动态取值时,就可以用[]来做,而.无法做到动态取值。例如: ${sessionScope.user[data]}中data 是一个变量 3)变量 EL存取变量数据的方法很简单,例如:${username}。它的意思是取出某一范围中名称为 username的变量。 因为我们并没有指定哪一个范围的username,所以它会依序从Page、Request、Session、 Application范围查找。 假如途中找到username,就直接回传,不再继续找下去,但是假如全部的范围都没有找到时, 就回传null。 属性范围在EL中的名称 Page PageScope Request RequestScope Session SessionScope Application ApplicationScope 4) 1--EL表达式用${}表示,可用在所有的HTML和JSP标签中作用是代替JSP页面中复杂的JAVA代码. 2--EL表达式可操作常量 变量 和隐式对象. 最常用的 隐式对象有${param}和${paramValues}. ${param}表示返回请求参数中单个字符串的值. ${paramValues}表示返回请求参数的一组 值.pageScope表示页面范围的变量.requestScope表示请求对象的变量. sessionScope表示会话 范围内的变量.applicationScope表示应用范围的变量. 3 -- 表示是否禁用EL语言,TRUE表示禁止.FALSE表示不禁 止.JSP2.0中默认的启用EL语言. 4-- EL语言可显示 逻辑表达式如${true and false}结果是false 关系表达式如${5>6} 结 果是false 算术表达式如 ${5+5} 结果是10 5--EL中的变量搜