OGNL(对象图导航语言)是什么?
OGNL 的全称是“Object-Graph Navigation Language”,即对象图导航语言,它是一种功能强大的开源表达式语言。使用这种表达式语言可以通过某种表达式语法存取 Java 对象的任意属性,调用 Java 对象的方法,以及实现类型转换等。
OGNL 具有以下特点。
了解 OGNL 的概念和特点后,下面讲解一下 OGNL 的组成。OGNL 的操作实际上是围绕 OGNL 结构的三个要素进行的,分别是表达式(expression)、上下文对象(context)和根对象(root)。这三个要素的具体说明如下。
OGNL 具有以下特点。
- 支持对象方法调用。如 objName.methodName()。
- 支持类静态方法调用和值访问,表达式的格式为 @[类全名(包括包路径)]@[方法名|值名]。如 @java.lang.String@format('fruit%s','frt')。
- 支持赋值操作和表达式串联。如 price=100,discount=0.8,在方法 calculatePrice() 中进行乘法计算会返回 80。
- 访问 OGNL 上下文(OGNL context)和 ActionContext。
- 操作集合对象。
了解 OGNL 的概念和特点后,下面讲解一下 OGNL 的组成。OGNL 的操作实际上是围绕 OGNL 结构的三个要素进行的,分别是表达式(expression)、上下文对象(context)和根对象(root)。这三个要素的具体说明如下。
1. 表达式
表达式是整个 OGNL 的核心,OGNL 会根据表达式到对象中取值。所有 OGNL 操作都是针对表达式解析后进行的,它表明了此次 OGNL 操作要“做什么”。实际上,表达式就是一个带有语法含义的字符串,这个字符串规定了操作的类型和操作的内容。2. 上下文对象
上下文对象规定了 OGNL 操作“在哪里进行”。context 对象是一个 Map 类型的对象,在表达式中访问 context 中的对象,需要使用 # 号加对象名称,即“# 对象名称”的形式。例如要获取 context 对象中 user 对象的 username 值,可以如下书写:#user.username
3. 根对象
根对象可以理解为 OGNL 的操作对象,OGNL 可以对根对象进行取值或写值等操作,表达式规定了“做什么”,而根对象则规定了“对谁操作”。实际上根对象所在的环境就是 OGNL 的上下文对象环境。所有教程
- socket
- Python基础教程
- C#教程
- MySQL函数
- MySQL
- C语言入门
- C语言专题
- C语言编译器
- C语言编程实例
- GCC编译器
- 数据结构
- C语言项目案例
- C++教程
- OpenCV
- Qt教程
- Unity 3D教程
- UE4
- STL
- Redis
- Android教程
- JavaScript
- PHP
- Mybatis
- Spring Cloud
- Maven
- vi命令
- Spring Boot
- Spring MVC
- Hibernate
- Linux
- Linux命令
- Shell脚本
- Java教程
- 设计模式
- Spring
- Servlet
- Struts2
- Java Swing
- JSP教程
- CSS教程
- TensorFlow
- 区块链
- Go语言教程
- Docker
- 编程笔记
- 资源下载
- 关于我们
- 汇编语言
- 大数据
- 云计算
- VIP视频