EL表达式主要功能:用于访pageContext,request,session,application范围内存储的数据。
OGNL不仅可以访问数据,还具有访问方式,对汇总进行操作等功能。
OGNL是啥子?
Object Graphics Navigation Language 对象图导航语言。主要作用是对一些复杂对象的属性与方式进行访问。
OGNL技术可以独立运用,封装在ognl.jar开发包中。
2)OGNL工作原理
OGNL工具由三部分构成,分别是
a. OGNL引擎:负责解释执行OGNL表达式,按表达式区root或map区域寻找数据。
b. Root根对象区域:访问该区域数据OGNL表达式简洁方便。适合放置访问频繁的对象元素。
c. Map对象存储区 :访问该区域需要运用“#key”访问。适合放置访问不频繁的对象元素。
运用时,向OGNL引擎指定壹个表达式,该引擎根据表达式去Root区或Map区访问对象的属性或方式。
*3)OGNL表达式语法
a.访问Root对象某个简单属性
表达式: "属性名"
b.访问Root对象某个数组或者List汇总
表达式:"属性名[0]"
c.访问Root对象某个Map汇总
表达式:"属性名.key"或者"属性名['key']"
d.访问Root对象某个复合类型属性address
表达式: "address.子属性"
e.访问Root对象某个复杂属性 List addresses
表达式:"addresses[0].子属性"
f.访问Root对象的某个属性的方式
表达式:"属性名.方式()"
g.支持Java中的表达式与运算符
h.定义壹个List常量
表达式:{"A","B","C"}
i.定义壹个Map常量
表达式:#{"key1":value1,"key2":value2}
j.访问静态常量或方式
表达式:"@包名.类型@常量名或方式"
上述语法如果访问Map区域一样运用,只要注意追加"#key".
el表达式是啥子?
一种简单的计算规则,用于向标签的属性赋值,今年,也可以直接输出。
(1)访问bean的属性。
方法一:
${user.name} : 容器会依次从pageContext,request,session,application查找绑订名称为"user"的对象(即调用getAttribute方式),找到后,调用该对象的getName方式并输出。如果值为null,会转换成""输出;
另外,如果找差点该对象,也会输出""。
如果要指定查找范围,可以运用pageScope,requestScope,sessionScope,applicationScope,比如:${sessionScope.user.name}
方法二:
${user["name"]}
这种方法允许[]里出现变量或者序号(从0最初,用来访问数组中的元素)
(2)进行一些简单的计算,计算结果可以直接输出,也可以向标签的属性赋值。
1)算术运算: "+","-","*","/","%"。注意"+"只能进行加法操作,不能进行连接操作。
2)关系运算:">",">=","