OGNL的概念,这里就不多介绍了。
我这里想做的就是通过一个ognl的简单的例子,我自己写一个程序,模拟ognl的信息获取。
信息存取的话,道理是一样的,这里读者自己可以参照我的代码实现数据存入。
我这里只讲OGNL的简单的链式获取,不涉及复杂的表达式部分,OGNL的NB之处在于表达式。
下面我们引入正题。看我下面的例子。
我们这里用OGNL获取Bean的信息,包括ArrayList,HashMap,以及数据对象。
下面贴代码了。
UserBean.java
UserAddrBean.java
测试main函数
运行输出结果是
addr1
list1
dev
list2
addr1
value
dev
菜鸟们可能觉得OGNL好神奇噢,我也这么觉得,是挺有想法的一个东东。搞的跟模板工具的获取方式很像。的确在数据对象的解耦合方面做了一个进步。
下面我们模拟开发一个这样的东东。功能与之类似。代码如下:
MyContext.java
下面才是核心部分,bean表达式转换器噢。
这里的代码如果小菜鸟没有用过发射啥的东东,那就要多多研究研究了,这里用的东西个人觉得还是蛮有正对性的。
ValueEngine.java
下面我们要模拟上面刚才运行的那个main函数了噢,呵呵。
不过这次的main函数,用的对象获取的方法是我刚写的方法。
运行main函数。试试效果,看看是不是跟OGNL的感觉一样
输出是:
addr1
list1
20000
value
list2
addr1
value
keyboardsun
你看看,是不是和ognl的效果一样啊,是不是很神奇呢。我这里只是模拟,核心的意思跟ognl差不多。
供大家玩玩参考使用,别以为ognl有多神奇,我们要善于去把握其中的原理。当然,我这里演示的只是OGNL最简单的一角,它的强大之处可不在这里,所以大家别简单的认为ognl不过如此。其实ognl很强大,尤其是表达式部分。
Ognl的源码我没有细看,大概的简单数据获取原理就是这样的,你看看,我上面就10来行的代码,就可以实现这么好的功能了噢,菜鸟们多学习学习吧。
作者 keyboardsun
转载请表明出处噢。
分享到:
相关推荐
在实际开发中,开发者可以通过OGNL表达式轻松地实现数据绑定、模板渲染等功能,极大地提高了代码的可读性和可维护性。同时,OGNL还具有高度的灵活性,允许在表达式中嵌入复杂的逻辑,使得程序的动态性得到增强。 ...
这篇深入学习的文章主要探讨了OGNL表达式的原理和使用。 首先,我们来理解一下OGNL是什么。OGNL是一种强大的表达式语言,允许开发者通过简单的字符串表达式来访问和修改对象图。在Struts2中,OGNL用于在Action和...
camel-ognl-1.6.4.jar, camel-ognl-2.8.1.jar, com.springsource.org.ognl-2.6.9.jar, com.springsource.org.ognl-sources-2.6.9.jar, ognl-2.5.1.jar, ognl-2.6.11.jar, ognl-2.6.3.jar, ognl-2.6.5.jar, ognl-...
### 学习OGNL在Struts2中的工作原理 #### OGNL简介 OGNL(Object-Graph Navigation Language)是一种强大的表达式语言,用于获取和设置Java对象的属性。它是Struts2框架的一个核心特性之一,被广泛应用于框架的...
在这个压缩包中,包含的是OGNL的源码和帮助文档,这对于深入理解OGNL的工作原理以及在Struts2中的应用非常有帮助。 OGNL的核心特性包括: 1. **对象导航**:OGNL允许我们通过`.`操作符来访问对象的属性,甚至可以...
OGNL支持丰富的语法特性,能够方便地访问复杂的对象图。 #### 二、OGNL的基本用法 在Struts2框架中,OGNL表达式被广泛应用于视图层,比如在JSP页面中用来获取数据。OGNL表达式的语法简洁明了,例如: - **直接...
OGNL,全称为Object-Graph Navigation Language,是一种强大的、动态的、类型安全的表达式语言,允许程序开发者通过简单的字符串表达式来访问和操作复杂的对象图。它的主要功能包括访问对象的属性、调用方法、执行...
OGNL(Object-Graph Navigation Language)是Struts2框架中常用的一种表达式语言,用于在视图层方便地访问和操作模型数据。...通过学习和熟练掌握OGNL,开发者可以提高工作效率,构建更加灵活和可维护的Web应用程序。
1. **对象导航**:OGNL允许开发者通过简单的字符串表达式来访问对象图中的任何部分。例如,`user.name`可以用来获取`user`对象的`name`属性。 2. **动态方法调用**:除了属性访问,OGNL还支持动态方法调用,例如`...
首先,OGNL的核心特性在于其简洁而统一的语法,它允许开发者通过简单的表达式来访问和操作对象的属性。这种语法不仅包括字段的读写,还能执行方法调用,甚至可以遍历整个对象图,即从一个对象出发,沿着对象间的引用...
赠送jar包:ognl-3.2.21.jar; 赠送原API文档:ognl-3.2.21-javadoc.jar; 赠送源代码:ognl-3.2.21-sources.jar; 赠送Maven依赖信息文件:ognl-3.2.21.pom; 包含翻译后的API文档:ognl-3.2.21-javadoc-API文档-...
在Eclipse中,你可以将“ognl.jar”作为外部库添加到你的项目中,并通过“Attach Source”功能关联源代码,这样就可以查看和调试OGNL的内部实现,这对于学习、调试或扩展其功能非常有帮助。 OGNL的核心功能包括: ...
1. **动态属性**:OGNL允许访问不存在的属性,如果对象实现了`PropertyAccessor`接口,可以动态创建或读取属性。 2. **类型转换**:OGNL可以自动进行类型转换,例如,将字符串转换为整数,如`"123"`会被自动转换为`...
描述中的“ognl-3.0.6-sources的jar包”是指特定版本(3.0.6)的OGNL源代码打包成的JAR文件,开发者可以下载这个文件来查看或学习OGNL的内部实现。 OGNL的核心功能包括: 1. **对象导航**:通过点号(.)操作符,...
Struts2是一个流行的Java Web应用程序框架,它极大地简化了MVC(模型-视图-控制器)架构的实现。其中,OGNL(Object-Graph Navigation Language)是Struts2中的核心表达语言,用于在视图层与模型层之间传递数据。在...
开发工具 ognl-3.1.12开发工具 ognl-3.1.12开发工具 ognl-3.1.12开发工具 ognl-3.1.12开发工具 ognl-3.1.12开发工具 ognl-3.1.12开发工具 ognl-3.1.12开发工具 ognl-3.1.12开发工具 ognl-3.1.12开发工具 ognl-3.1.12...
综上所述,这份"OGNL语言中文资料"应该涵盖了OGNL的基本概念、语法特性以及在实际开发中的应用案例,是学习和掌握OGNL的宝贵资源。通过深入学习和实践,开发者能够更好地利用OGNL提升代码的灵活性和可维护性。
### Struts2中OGNL的概念及原理说明 #### 一、OGNL表达式的基本用法与特点 **OGNL**,即**Object Graphic Navigation Language**(对象图导航语言),是Struts2框架中用于处理对象及其属性的强大工具之一。通过...
学习和熟练掌握这些API将使你在使用ognl进行数据绑定和动态逻辑时更加得心应手。 总之,这个压缩包中的ognl源码和API文档是一份宝贵的资源,对于想要深入理解ognl工作原理或者需要优化使用ognl的开发者来说,它们将...