
OGNL语言详解:Java对象属性导航
下载需积分: 50 | 616KB |
更新于2024-07-28
| 127 浏览量 | 举报
1
收藏
"ognl语言指南 - 翻译: 李颖 ([email protected]) 2010年"
OGNL(Object-Graph Navigation Language)是一种强大的表达式语言,用于访问和操作Java对象的属性。它的主要目标是提供一种灵活的方式来导航复杂的对象图,并执行对这些对象的操作。OGNL的设计使得它在多种场景下都非常有用,如数据绑定、数据源语言以及在Web应用中连接UI元素与模型。
在OGNL中,表达式可以非常多样化,包括但不限于以下几个方面:
1. **常数**:可以使用标准的Java常量,如数字、字符串和布尔值。
2. **属性引用**:通过`.`符号访问对象的属性,例如`object.property`。
3. **索引**:对数组和列表进行索引操作,如`array[index]`或`list[index]`。对于JavaBean,还可以使用`bean[index]`来访问索引属性。
4. **JavaBean中的索引属性**(Indexed Properties):支持对具有索引属性(如数组或列表)的JavaBean进行操作。
5. **OGNL特有的对象索引属性**(Object Indexed Properties):允许对非标准索引对象进行操作。
6. **调用方法**:通过`object.method()`来调用对象的方法。
7. **变量引用**:直接使用变量名,如`varName`。
8. **带括号的表达式**:使用`()`包围表达式,可以控制运算的优先级。
9. **子表达式链**(Subexpressions):嵌套的表达式,如`a.b.c`。
10. **构造集合**:创建集合,如`{1, 2, 3}`构造列表,`[1, 2, 3]`构造数组,`{key1: value1, key2: value2}`构造映射表。
11. **映射表操作**:包括对Map的投影和查询。
12. **集合操作**:在集合中查找第一个或最后一个匹配项,以及调用构造方法和静态方法。
13. **读取静态域**(Static Fields):可以直接访问类的静态字段。
14. **表达式计算**:支持复杂的数学和逻辑运算。
15. **伪Lambda表达式**:尽管OGNL不直接支持Lambda表达式,但可以通过某些技巧实现类似功能。
16. **伪属性**:为集合提供临时属性,增强表达式能力。
17. **操作符**:OGNL有丰富的操作符集,用于各种算术、比较和逻辑运算。
18. **类型转换**:自动或手动将对象转换为布尔值、数值、整数或其他数据类型。
19. **赋值与取值**:使用`= `进行赋值操作,如`object.property = value`。
OGNL的强大之处在于其灵活性和表达能力,使得它能处理复杂的数据结构和动态行为。由于其与Java的紧密集成,它被广泛应用于框架和库中,如WebWork、Tapestry等,为开发者提供了便利的表达式语言来操作和绑定对象。
相关推荐








菜园子
- 粉丝: 57
最新资源
- 探索语音合成TTS技术:Freephone与Mbrora模块源码解析
- JSP与Servlet初学者实战项目:注册登录及数据库操作
- C#实现三原色混合搭配与颜色配置
- Oracle数据库连接池范例实现与优化
- WinPcap 4.0.2:32位操作平台网络封包抓取工具介绍
- ACCESS数据库开发的企业工资管理系统设计文档
- C#实现复制功能的源代码详解
- D-Link DFE-530TX+网卡驱动程序版本5397下载
- 网页设计进阶:JavaScript&DHTML&CSS参考大全
- ACCP5.0 s1测试题:JAVA、HTML、SQL Server、C#
- 北大青鸟Oracle9i PPT分享会
- WINDOWS下FTP文件系统源码实现
- Active Directory 灾难恢复全面指南
- Java Servlet源代码分析与应用
- 网奇IWMS: 先进ASP.NET企业网站管理系统
- 便携式GPS设备设计:Atmega8+GPS模块的创新应用
- JSP新闻发布系统:权限与评论管理功能全面解析
- C++编程入门:案例详解与基础分析
- 全功能网站计数器:IP跟踪与流量分析
- VB与OpenGL三维开发函数包使用指南
- Ext+Dwr+Hibernate+Spring综合示例工程解析
- 良格葛Java学习心得与实践分享
- LFM脉冲压缩雷达仿真实现与分析
- 用Flash打造动感个人简历的创新指南