值栈
其他
2018-12-09 23:10:49
阅读次数: 0
1、什么是值栈
- ValueStack其实类似于一个数据中转站(Struts2中的数据都保存在ValueStack)
- ValueStack接口,实现OgnlValueStack对象
- ValueStack贯彻整个Action的生命周期(action一旦创建,框架就会自己创建一个ValueStack)
2、值栈的结构
- ValueStack中有两个主要的区域
- root区域 :实质是ArrayList,里面一般放置对象。获取root中的值不需要加#
- context区域 :实质是一个Map,里面放置的是web开发的常用对象数据的引用,获取context中的数据要加#
- 操作值栈通常操作的都是ValueStack中的root区域
3、值栈与ActionContext的关系
- ServletContext:Servlet的上下文
- ActionContext :Action的上下文
- 当请求发过来的时候,执行过滤器doFilter方法,在这个方法中创建ActionContext,在创建ActionContext过程中创建ValueStack,将ValueStack对象传给ActionContext对象,所以可以使用ActionContext获取值栈的值
- ActionContext对象之所以可以访问servlet的API(访问域对象数据)是因为在其内部有值栈的引用
转载自blog.csdn.net/qq_43642812/article/details/84453349