OGNL的介绍:

OGNL在应用上跟EL比较相似,所以,有些同学可能会混淆,其实他们并没有关系的,只是用法上比较相似而已,首先来介绍一下他们的应用之处。

OGNL(对象视图导航语言)Object-Graph NavigationLanguage的缩写。

②OGNL表达式作用:

表达式:使用简洁的表达式完成复杂的功能。

③先说说OGNL相比EL的优点吧:

    能够访问对象的普通方法

    能够访问类的静态属性和静态方法

    强大的操作集合类对象的能力

    支持赋值操作和表达式串联

    访问OGNL上下文和ActionContext(最重要的)

④action和ActionContext的理解:

你有10本书,今天上午要上java课,你去上课应该就是只带java书籍,应该不会把其他书带着,那么这本书就是小数据,另外9本就是大数据(不是云计算那个大数据),action就相当于小数据,ActionContext就相当于大数据。

action也叫跟对象或者root对象,如果想要取值,可以通过“name”直接取值,如果是actionContext则必须在前面加#号

public static void main(String[]args) throws OgnlException {
    //原则:数据分为两类---常用的和不常用的
   
//表达式:常用的直接取,不常用的加#
   
Map map =new HashMap();
    map.put("name","张三");
    map.put("age",125);
    User user = new User();
    user.setName("李四");
    user.setPassword("123456");

    Object name = Ognl.getValue("name",map, user);
    System.out.println(name);
}


打印输出:李四    (记得导入ognl的jar包,我用的3.0版本的),否则没有getValue方法

因为张三是存在map中的,而此时这个map是一个大数据,如果要取,需在name前加#

actionContext中包含着几大对象:

OGNL的介绍:_第1张图片


ValueStack(值栈),遵循先进后出的原则,里面存放的是action。


你可能感兴趣的:(OGNL的介绍:)