struts2 是怎样绑定参数到对象的

osrchina 发布于 2013/03/01 13:31
阅读 1K+
收藏 0

class A{

 name;

age;

}

 

class B{

name;

age;

}

 

<input name="a.name"/>

<input name="a.age"/>

<input name="b.name"/>

<input name="b.age"/>

有谁知道struts2是怎么把这种值 注入到 action的bean里面去的呢?

 

加载中
0
CCNU
CCNU
在接收这些input的action里面定义A,B类型属性,写上各自的set方法
0
Beyond-Bit
Beyond-Bit
Struts 2要依赖于ValueStack对象。这个对象贯穿整个Action的生命周期(每个Action类的对象实例会拥有一个ValueStack对象)。当 Struts 2接收到一个.action的请求后,会先建立Action类的对象实例,但并不会调用Action方法,而是先将Action类的相应属性放到 ValueStack对象的顶层节点(ValueStack对象相当于一个栈)。只是所有的属性值都是默认的值,如String类型的属性值为 null,int类型的属性值为0等。 
Beyond-Bit
Beyond-Bit
@os4china 核心的我都告诉你了啊!你google一下struts2值栈的原理你就知道了!
osrchina
osrchina
建立Action类的对象实例时,是如何把页面上的属性,通过什么手段付给action类的对象属性呢?
0
相见欢
相见欢
是通过拦截器,从值栈上面绑定到对象上的。
0
cookqq
cookqq
最底层原理是使用java反射机制,struts2中使用了ognl框架来设置bean属性值。可以参考

http://my.oschina.net/winHerson/blog?catalog=289386

0
osrchina
osrchina

引用来自“bugeasy”的答案

最底层原理是使用java反射机制,struts2中使用了ognl框架来设置bean属性值。可以参考

http://my.oschina.net/winHerson/blog?catalog=289386

谢谢
返回顶部
顶部