Ognl表达式简介
Ognl表达式
是什么:
Ognl是Object Graphic Navigation Language(对象图导航语言)的缩写,它是一个开源项目。 Struts2框架使用OGNL作为默认的表达式语言。
OGNL的jar包
比较:
其实ognl表达式和EL表达式有很多相似的地方,不过也有不同的地方。
(1)相同点:
获取域对象的数据
(2)不同点,
EL表达式:不能存放数据,不能调用方法
ognl表达式:可以存放数据,可以调用方法。
优势:
1、支持对象方法调用,如xxx.doSomeSpecial();
2、支持类静态的方法调用和值访问,表达式的格式:
@[类全名(包括包路径)]@[方法名 | 值名],例如:
@java.lang.String@format('foo %s', 'bar')
或@tutorial.MyConstant@APP_NAME;
3、支持赋值操作和表达式串联,如price=100, discount=0.8,
calculatePrice(),这个表达式会返回80;
4、访问OGNL上下文(OGNL context)和ActionContext;
5、操作集合对象。
怎么做:
学习了解Ognl表达式的核心对象OgnlContext对象的使用
基本步骤:
步骤1:1)创建一个Ognlcontext对象
步骤2:2)把user对象存入OgnlContext对象
步骤3:3)从OgnlContext对象取出数据
先创建User.java实体(省略set,get和toString方法),创进行test。
User.java实体
目标: 学习了解Ognl表达式的核心对象OgnlContext对象的使用
案例test1:
test1
结果
案例test2:
使用Ognl表达式取出OgnlContext的数据,如果是非根对象数据,那么使用#号去取
test2
结果
案例test3:
使用Ognl表达式取出OgnlContext的数据,如果是根对象数据,不需要使用#号,不需要key名称,直接写存入对象的属性即可!!
test3
结果
案例test4:
Ognl表达式调用静态方法
test4
结果
结论:
1)从OgnlContext对象的根对象取出数据,不需要#号
2)从OgnlContext对象的非根对象取出数据,需要#号
本文暂时没有评论,来添加一个吧(●'◡'●)