struts2---值栈笔记

来源:互联网 发布:学汽修下载什么软件? 编辑:程序博客网 时间:2024/06/03 09:50

值栈的定义:

对应每一个请求对象的轻量级的内存数据中心

统一管理数据,供action,result,interceptor使用,数据被集中起来,提供了很大的便利性

值栈的作用:

线程安全的为每个请求提供公共的数据存取服务

值栈的具体分析

值栈有广义和狭义之分

广义:

通常指的是ActionContext对象,它是action运行的上下文,是一个基本的容器,包含action运行需要的数据,如请求参数,会话等

ActionContext是线程安全的,会为每个线程分配一个ActionContext

ActionContext里面存放很多的值

如Request的parameters,请求的参数,他是从请求对象里面拷贝出来的,因此在这边变化不会影响请求对象的参数

Request,Session,Application的attribute属性,和会话对象的属性是联动的

狭义值栈

指的就是ognlvaluestack对象,主要用来支持ognl运算

里面存放一些ognl可以访问的数据

Action的实例

OGNL表达式产生的中间变量,比如在后面使用Struts2的标签的时候,使用循环标签,自然会有循环的变量,这些都存放在值栈中

Actioncontext里面包含狭义值栈

值栈一般值得是广义值栈,页面获取的数据是狭义值栈里面的数据也就是valuestack

值栈的使用

ActionContext的获取方法

ActionContext ctx= ActionContext.getContext()

如果在能够获取到actionInvocation的地方可以通过actionInvocation获取

ActionContext ctx=actionInvocation.getinvocationContext();








原创粉丝点击