ValueStack

值栈是每一次请求对象的轻量级数据中心

每一次请求都会创建一个ValueStack,ValueStack封装该次请求的数据信息

(1)ValueStack是一个接口

(2)ValueStack贯穿整个Action的生命周期(一次请求),每个Action实例都有ValueStack对象,ValueStack相当于是中转站,ValueStack封装了请求的信息和Action对象的其他相关信息

(3)获取ValueStack:通过ActionContext对象

ValueStack vs = ActionContext.getContext().getValueStack();

(4)ValueStack里有两个重要的属性:

root:表示栈的数据结构(后进先出) ,ArrayList类型     (一般单个对象放入root)

context:上下文 , Map类型  (一般集合放入context)

root:主要用来存储Action中的信息

context:主要用来存储映射关系的信息

context存在对root对象的引用,所以拿到context就可以拿到root

context中还存在request,session,application,attr,paramerters等对象的引用

拿到context就可以拿到ValueStack里的所有数据

从root中获取数据 直接使用属性名猎取, <s:property value = "属性名"/>

从context中获取数据,#key  <s:property value="#key">

..把数据放入到root中  : 在Action中提供一个可访问的属性(getter方法)

..把数据放入到context中:ActionContex.put(String name , Object value) 

ValueStack