OGNL表达式的入门
1、什么是OGNL?
OGNL:Object Graph Navigation Language,对象图导航语言。
它是应用于Java中的一个开源的表达式语言(Expression Language),它被集成在Struts2等框架中,作用是对数据进行访问,它拥有类型转换、访问对象方法、操作集合对象等功能。
OGNL:对象图导航语言,比EL表达式强大许多。
OGNL并不是Struts中独有的,它是一门独立的表达式语言,Struts2引用了这门表达式语言。
EL表达式:从内置的11个对象中获取数据。
例如:${ pageContext.request.contextPath }
OGNL:能调用java对象的方法,能获取Struts2中值栈的数据。
2、OGNL的作用
Struts 2默认的表达式语言是OGNL,原因是它相对其它表达式语言具有下面几大优势:
(1)支持对象方法调用,如xxx.doSomeSpecial();
(2)支持类静态的方法调用和值访问,表达式的格式为@[类全名(包括包路径)]@[方法名 | 值名]。
例如:@java.lang.String@format(‘foo %s’, ‘bar’)或@tutorial.MyConstant@APP_NAME;
(3)支持赋值操作和表达式串联。
例如price=100, discount=0.8, calculatePrice(price*discount),这个表达式会返回80;
(4)访问OGNL上下文(OGNL context)和ActionContext;
(5)操作集合对象。
(6)可以直接new一个对象。
3、OGNL的三要素
express表达式,root对象,context对象。
4、OGNL在java环境下的入门
先定义一个类:
public class Student {
private Long no;
private String name;
// setter and getter
// 构造方法
// 重写toString()
}
(1)调用对象的实例方法
package com.pipi.struts2.ognl;
import ognl.Ognl;
import ognl.OgnlContext;
impo