三大框架 之 OGNL表达式

OGNL

什么是OGNL

  • OGNL是Object-Graph Navigation Language的缩写,
  • 它是一种功能强大的表达式语言,通过它简单一致的表达式语法,
  • 可以存取对象的任意属性,调用对象的方法,遍历整个对象的结构图,实现字段类型转化等功能。

OGNL与EL表达式对比

​ OGNL对象图导航语言,比EL表达式强大很多倍的语言
​ EL表达式只能从域中获取数据
​ OGNL可以调用对象的方法,获取struts的值栈的数据。
​ OGNL是第三方的表达式语言,用它来获取struts中值栈的数据

OGNL功能

  • 支持运算符(如+-*/)
  • 支持对象方法调用,如xxx.doSomeSpecial();
  • 支持类静态的方法调用和值访问
  • 支持赋值操作和表达式串联
  • 访问OGNL上下文
  • 操作集合对象
  • 可以直接new一个对象

OGNL使用要素

  • 表达式
  • 根对象
  • Context对象(非根对象)

OGNL入门

OGNL核心OgnlContext,本质就是一个map

java程序使用ognl

获取root中的数据

  • 可以向root当中存放Java对象

  • 不需要加#号

获取context中的数据

取数据时需要加#

获取对象方法

获取对象静态方法

struts2中使用ONGL

  • 在jsp当中引入struts的标签库
  • 直接在jsp当中使用OGNL

  • 访问静态方法

    ​ 默认是不让访问静态成员
    ​ 需要开启一个常量(struts.ognl.allowStaticEmthodAccess)

原文地址:https://www.cnblogs.com/mumuyinxin/p/10738740.html