谁能介绍一个OGNL和WEBOGNL???????

uu_snow 03-07-27

这两个东西是干什么的?
有什么特别地方?

robornet
2003-07-27 17:42

Object-Graph Navigation Language
用于读、写java对象属性的描述语言

guty
2003-07-27 21:27

OGNL可以让我们用非常简单的表达式访问对象层,
例如,当前环境的根对象为user1,则表达式
person.address[0].province
可以访问到user1的person属性的第一个address的province属性。

这种功能是模板语言的一个重要补充,象jsp2.0,velocity,jelly等等,都有类似的功能,但是ognl比它们完善得多,而且以一个独立的lib出现,方便我们构建自己的框架。

webwork中使用OGNL取代原来的EL来做界面数据绑定,所谓界面数据绑定,也就是把界面元素(例如一个textfield,hidden)和对象层某个类的某个属性绑定在一起,修改和显示自动同步。

和struts的formbean相比,这样做的好处非常明显:在webwork中不需要为每个页面专门写formbean,可以直接利用对象层的对象。例如在对象设计中,我们的User和Person是分开的,而一个注册用户界面需要填写两者的内容,在webwork中,就可以保持后台的对象结构,把属于用户属性的界面元素用user.person.xxx绑定,把属于账号属性的界面元素用user.xxx绑定。