我们知道OGNL只是显示数据的表达式语言ValueStack值栈:存储数据的!
ValueStack是ognl存放数据的对象
得到ValueStack有三种方案
ActionContext.getContext().getValueStack()
ServletActionContext.getValueStack(request);
request.getAttribute("struts.valueStack");
ValueStack作用域为request,当action创建的时候,ValueStack就创建了,当action被销毁时,ValueStack就销毁了
ValueStack可以利用对象栈和map栈存放数据
向对象栈中存放数据
ActionContext.getContext().getValueStack().push 栈顶 对象
ActionContext.getContext().getValueStack().add() 栈底 对象
ActionContext.getContext().getValueStack().add(index,object); 按照指定的位置存放在对象栈中
向map栈中
request,session,application setAttibute() map-->_values--->requst,session,application
ActionContext.getContext().put(key,value) 直接存放在map栈中