struts2中ValueStack和Stack Context二者的区别

来源:互联网 发布:centos虚拟机怎么改ip 编辑:程序博客网 时间:2024/05/17 04:23
<1>OGNL访问数据是从StackContext中访问数据的.在OGNL数据访问系统中会假设系统中有一个"根对象",访问"要对象"中的属性或方法时,与其它对象的访问方式不太一样,一般来说访问"根对象"中的属性或方法的方式,比访问其它对象的属性或方法的方式简单.例如:在OGNL系统中有两个对象:Person对象,并且它在StackContext中的名字是p;Animal对象,并且它在StackContext中的名字是a;以上两个对象者有name,sex属性和getter,setter方法.重要的是假设p是根对象.下面是访问代码://访问p的getName()方法#p.name//访问a的getName()方法#a.name//重点:由于p是"根对象"所以下面的代码访问p的getName()方法,这个访问方式不一样很重要.#name<2>Struts2中比传统的OGNL系统多一个ValueStack对象.并且把ValueStack对象设置成"根对象".小结:根对象ValueStack在StackContext的内部,StackContext包含所有的数据,当然也包含着"根对象"ValueStack.妙处就是"根对象"中的数据与StackContext中其它"非根对象"中的数据的访问方式不一样.可以与OGNL系统中"根对象"中数据的访问方式不一样,进行联系思考.