EL表达式语言语法及其他

${表达式}

EL的前世今生

EL即Expression Language,是一种简单的数据访问语言,最初是JSTL1.0中定义的,从JSTL1.1开始,Sun公司将其从JSTL分离出来,成为JSP2.0规范中单独的一部分,并增加了很多新的特性。

最基本的应用

${user}

等效于jsp脚本表达式:<%= pageContext.findAttribute(“user”) %>

访问javaBean中的属性对象中的属性

${lesson.student.id}

访问有序集合中的元素

${teacherIds[2]}

执行基本的关系运算、逻辑运算和算术运算

${1 > (5 / 2)}

输出结果:false

使用自定义函数完成一些复杂功能

${xyz:filter(“<img/>”)}

其中,xyz:filter是自定义函数,“<img/>”是传递给这个自定义函数的参数

EL表达式中使用一些列隐含对象

如:pageContext、cookie

在页面上输出”${“

“\” + “$”,即”\${xyz}”可以输出” ${xyz}”

另外,${“${”}可以输出”${”

忽略页面中所有的EL表达式

<%@ page isELIgnored=”true” %>

EL的基本语法

标识符(变量和自定义函数名称):有任意顺序的大小写字母、数值、下划线组成,不能以数值开头,不能使用EL中的保留字,布恩那个使用EL隐含对象的标识符,不能使用的符号:单引号,双引号,减号,正斜杠(/)

保留字:and,eq,or等

EL中的常量

布尔:true/false

整形:与java中的十进制整形常量相同

浮点数:取值范围同Double,可以使用指数形式(如1.2E4)

字符串:用单引号双引号引起来的一连串的字符

关于内部单/双引号的转义(\)规则:

只有用单引号引起来的字符串,内部的单引号才需要转义,双引号不需要转义

同理,只有双引号…

Null:

EL中的变量

El表达式语言的核心概念就是将变量映射到一个对象上,其中的变量不用先定义,而是直接使用,EL API中定义了javax.servlet.jsp.el.VariableResolver类来将一个变量名映射到某个对象上,他实现了隐含对象的映射,还实现了非隐含对象的变量标识符与各个域范围内的属性值的映射。

如果EL表达式中包含变量名不对应EL隐含对象的标识符,则EL引擎将调用pageContext.findAttribute()方法在各个域中(page,request,session,applecation)依次查找变量名的属性值,如果找到这个属性,则返回找到的属性值,如果没有找到,则返回null。

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

*