【struts2学习之OGNL详解】

如题,先将博客文建出来,在慢慢道来。

这里参考了网上很多OGNL的介绍、用法,也参考了基本书籍:《struts2技术内幕》、《struts2 in action》以及OGNL的网站:apache-common-ognl,以前的OGNL的网站,现在不在维护了,而是交给其他几个实现了OGNL和框架的整合的网站维护的,比如struts2里面使用到了OGNL,也使用struts2实现了一部分OGNL,apache就自己维护了OGNL,还有其他的比如

  • WebWork (now Apache Struts) and XWork, it's core engine
  • Quartz Scheduler
  • SiteMesh
  • Compass
  • OSCache
  • OSWorkflow
  • OGNL
  • OSUser
  • PropertySet
  • Clickstream
  • OSCore
等等

但是发现网上很多对于OGNL底层的实现都没有说清楚,其实底层很简单,如果摸清楚了底层实现,那么以后都无需再看什么OGNL如何用。

就像曾经刚刚学习java的时候,老师讲解equals的时候,那时候连老师都是讲解equals如何用,那些个判断是不等的,。。blabla讲了很多,其实只需看看equals实现的源码就OK了,要不然要它开源是干什么的呢???


所以这里为了自己使用、理解方便,就做个记录吧。


好吧,这里最后其实还是参照了apache的http://commons.apache.org/proper/commons-ognl/这里说的比较很详细了。不过还是得需要翻译,所以下面就慢慢翻译着完吧。。哈哈。。偷笑


首先到http://svn.apache.org/viewvc/commons/proper/ognl/使用svn将代码下载下来,可以更好的研究。

好了下载完成之后,有个trunk的文件夹,trunk\src\main\java\org\apache\commons\ognl,这里面是OGNL的源码了。

在\trunk\src\test\java\org\apache\commons\ognl,里面有所有的OGNL的测试代码,这个才是真正学习OGNL的方式,官方提供的测试代码。!!!

https://issues.apache.org/jira/browse/OGNL,遇到OGNL方面的问题可以到这里提交。

以后可以在运行的时候debug看看源码,到底是如何牛X。


未完待续。。。。


你可能感兴趣的:(struts2,Ognl)