简述OGNL在框架中的作用?

   发布日期:2024-09-04 22:41:34    
EL表达式主要功能:用于访pageContext,request,session,application范围内存储的数据。OGNL不仅可以访问数据,还具有访问方法,对集合进行操作等功能。 OGNL是什么?Object Graphi

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<Address> 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)关系运算:">",">=","<","<=","==","!="。

3)逻辑运算: "&&","||","!"。

4)empty运算: empty 以下四种情况均为true

空字符串 空的集合 值为null 找不到对应的值

(3)访问请求参数值

${param.age}: 等价与 request.getParameter("age");

${paramValues.city} : 等价与 request.getParameterValues("citys");

El表达式的查找方式:

el:${pageinfo.totalPage},pageContext->request-->session-->application,拿到pageinfo,调用pageinfo的getTotalPage()方法,获取到值,然后输出.${pageinfo['totalPage']}

 
 
免责声明: 如果本站所选内容的文章作者及编辑认为其作品涉及版权问题,请及时用电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
本站未注明稿件来源:我爱网的图/文等稿件,均来自于互联网,目的在于传递更多行业信息,并不代表本站的立场和观点,仅供参考。他人从本网转载需自负版权等法律责任。本站部分内容来源于互联网,如有侵犯您的版权,请联系我们及时更正或删除。

推荐知识
点击排行
本站暂时不做友情链接,请勿申请!
友情链接