EL元素必须以${开始,以}结束。
EL元素可以出现在模板文本中,也可以出现在jsp标记的属性中。
1、EL变量范围:
在EL中访问变量的值可以直接使用 ${ 变量名 } or ${ sessionScope.username }
规则:默认情况下,JSP引引擎会按照page、request、session、application的范围搜索user关键字,然后将该对象取出,并显示其对应的成员。如果在以上的范围中有同名的key关键字,这样就会出现问题,而且让JSP引擎去搜索所有的范围,会降低效率。所以,我们需要给出一个范围,通过以下的方式:
示例
|
含义
|
${pageScope.user.name}
|
从page范围内取出对象
|
${requestScope.user.name}
|
从request范围内取出对象
|
${sessionScope.user.name}
|
从session范围内取出对象
|
${applicationScope.user.name}
|
从application范围内取出对象
|
2、EL关键字(16个):
and
|
eq
|
gt
|
ge
|
true
|
instanceof
|
null
|
div
|
or
|
ne
|
lt
|
not
|
false
|
le
|
empty
|
mod
|
3、访问运算符.和[ ]:
EL使用访问运算符“.“和”[ ]“来存取数据。
访问运算符“.“通常用于引用一个对象的属性。例如,访问person对象的name属性:
${person.name}在这种情况下,运算符.和[ ]可以相互替换使用。${person[“name“]}。
.和[ ] 也可混合使用${sessionScope。Cart[0].price}
差异:当存取的属性名包括特殊字符(如“.“或”-“等)
“[ ]“运算符比”.“ 运算符能更好支持动态取值的情况。
4、算术运算:
EL支持通用的算术运算,包括+ - * / %
可以使用div代表除法( / )运算,使用mod代表模( % )运算。
算术运算符的优先级:
- 括号:()
- 负号:-
- 乘、除、模:*,/(或div),%(或mod)
注意:除法中,如果除以0,返回值为无穷大而不是错误。
5、关系运算:
EL支持通用的关系运算,包括:= != < > <= >=
也可以使用 eq ne lt gt le ge
EL关系运算的优先顺序低于算术运算,关系运算的优先顺序是:
1) <,>,<=,>=
2) == ,!=
3) EL中使用条件判断:
操作
|
描述
|
示例
|
结果
|
==(eq)
|
是否相等
|
${5==5}
|
True
|
!=(ne)
|
是否不等
|
${5!=5}
|
false
|
<(lt)
|
是否小于
|
${5<7}
|
True
|
>(gt)
|
是否大于
|
${5>7}
|
false
|
<=(le)
|
是否小于等于
|
${5 le 5}
|
true
|
>=(ge)
|
是否大于等于
|
${5 ge 6}
|
false
|
l 判断一个变量是否为空:
例如:${empty param.choice}${empty sessionScope.userName}
6、逻辑运算:与&&、或|| 、非!
优先级低于关系运算符,逻辑运算符之间的优先顺序:
1.!(not)
2.&& (and)
3.|| (or)
7、empty运算符
在EL中有一个特殊的运算符empty,如果操作数值为null返回true,或者操作数本身是一个空的容器、空的数组或长度为0的字符串等也返回true。
注:空容器指的是不包含任何元素的容器。空数组表示其大小为0的数组。
8、自动类型转换
EL支持自动类型转换。
posted on 2008-09-26 20:05
老丁 阅读(3203)
评论(0) 编辑 收藏 所属分类:
jstl