深入理解EL表达式:语法与使用

需积分: 44 9 下载量 26 浏览量 更新于2024-07-22 收藏 841KB PDF 举报
"EL表达式使用详解" Expression Language(EL)是一种强大的、简洁的脚本语言,主要用于在Java Web应用程序中方便地访问和操作数据。它最初是作为JSTL(JavaServer Pages Standard Tag Library)的一部分引入,但在JSP 2.0及以后的版本中,EL成为了标准规范,被广泛应用于Servlet 2.4及以上版本的容器。 **6-1 EL简介** EL的全称是Expression Language,它的主要目标是简化JSP页面中对数据的获取和处理。在早期,EL只能在JSTL标签内部使用,例如通过`<c:out value="${expression}">`来输出表达式的结果。随着JSP 2.0的发布,EL被正式整合到JSP规范中,可以直接在JSP页面的任何地方使用。EL的普及还体现在JavaServer Faces (JSF)中,它也将EL作为其规范的一部分。因此,EL现在是Web开发中的一个成熟且标准化的工具。不过,对于不支持Servlet 2.4/JSP 2.0的容器(如Tomcat 4.1.29),则需要升级到支持新规范的版本才能使用EL。 **6-2 EL语法** EL表达式通常以`${}`包裹,用于表示一个数据访问或计算操作。其基本语法结构非常直观,例如 `${sessionScope.user.sex}` 表示从session作用域中获取用户对象的性别属性。 **6-2-1 .与[]运算符** EL提供了`.`和`[]`两种运算符来访问数据。`.`运算符用于直接调用对象的属性,例如 `user.sex`,而`[]`则可以用来动态访问属性,适合处理属性名不确定或来自变量的情况。这两种运算符可以混合使用,比如 `${sessionScope.user["sex"]}` 和 `${sessionScope["user"].sex}` 是等价的。这种灵活性使得EL在处理复杂的数据结构时更加便捷。 **6-3 EL隐含对象** EL包含一组预定义的隐含对象,它们提供了对常见Web环境中的数据的直接访问,如请求、会话、应用上下文等。例如,`requestScope`、`sessionScope`、`pageContext`等,这些隐含对象极大地简化了开发者对数据的获取。 **6-4 EL算术运算符** EL支持基本的算术运算,如加减乘除(`+`, `-`, `*`, `/`)、求余数(`%`)以及自增自减(`++`, `--`)等,使得在表达式中进行简单的数学计算变得直接。 **6-5 EL关系运算符** 关系运算符包括等于(`==`)、不等于(`!=`)、大于(`>`)、小于(`<`)、大于等于(`>=`)和小于等于(`<=`),可用于比较操作。 **6-6 EL逻辑运算符** EL提供了逻辑运算符,包括逻辑与(`&&`)、逻辑或(`||`)和逻辑非(`!`),用于组合和判断条件。 **6-7 EL其他运算符** 除了上述运算符,EL还有类型转换、成员访问、空值检查等其他运算符,进一步增强了其表达能力。 **6-8 EL Functions** EL允许注册并使用自定义函数,这些函数可以来自JAR文件中的类库,例如JSTL的`fn:`前缀下的函数。这扩展了EL的功能,使其能够处理更复杂的任务,如字符串操作、数组处理等。 EL通过其简洁的语法、丰富的运算符和隐含对象,以及对自定义函数的支持,极大地提高了Java Web开发的效率和代码的可读性。开发者可以利用EL轻松地在JSP页面中处理和展示数据,而无需深入到复杂的脚本let中。
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中的变量搜