当前位置: 代码迷 >> Java Web开发 >> ActionContext、ValueStack、Stack Context 间的关系解决方案
  详细解决方案

ActionContext、ValueStack、Stack Context 间的关系解决方案

热度:472   发布时间:2016-04-17 00:16:58.0
ActionContext、ValueStack、Stack Context 间的关系
最近在学习Struts2,对于其中的ActionContext、ValueStack、Stack Context之间的关系总感觉有些模糊,网上找了下也没有详细分析的文章,不知各位对于它们之间的关系如何理解?

------解决方案--------------------
我最近也在学习。。已经在项目中实现了Struts2+spring2.5+hibernate3.2的整合。。。只是应用了下。。。关注
------解决方案--------------------
模糊中。。。。。。。。

------解决方案--------------------
看源码你就会发现,ActionContext这个类中有一个变量: 
Map context, 
实际上调用ActionContext的put,get 就相当于调用context的相就方法,你在页面上通过获取的就相当于调用context.get("request"),context.get("attr"),而你通过ac.put("list", List)也只能通过ac.get("list")获得。 
而ActionContext.getValueStack()相当于调用context.get(OgnlValueStack.VALUE_STACK)所获取的与通过ActionContext.get("request")获取的是不一样的东西
------解决方案--------------------

ActionContext 


一次Action调用都会创建一个ActionContext 
调用:ActionContext context = ActionContext.getContext() 




ValueStack 


由OGNL框架实现 
可以把它简单的看作一个List 
 

Stack Object:放入stack中的对象,一般是action。 
Stack Context(map):stack上下文,它包含一些列对象,包括request/session/attr/application map等。 
EL:存取对象的任意属性,调用对象的方法,遍历整个对象结构图。 

------解决方案--------------------
ActionContext是Action上下文
可以得到request session application
ValueStack是值栈 存放表单中的值
Stack Context 栈上下文 也是用来存值的
------解决方案--------------------
探讨

ActionContext


一次Action调用都会创建一个ActionContext
调用:ActionContext context = ActionContext.getContext()


ValueStack


由OGNL框架实现
可以把它简单的看作一个List


Stack Object:放入stack中的对象,一般是action。
Stack Context(map):stack上下文,它包含一些列对象,包括request/session/attr/application map等。
EL:存取对象的任意属性,调用对象的方法,遍历整个对象结…

------解决方案--------------------
一次Action调用都会创建一个ActionContext 
调用:ActionContext context = ActionContext.getContext() 
ValueStack由OGNL框架实现 
可以把它简单的看作一个集合 
Stack Object:放入stack中的对象,一般是action
Stack Context(map):stack上下文,它包含一些列对象,包括request/session/attr/application map等。 
EL:存取对象的任意属性,调用对象的方法,遍历整个对象结… 
  相关解决方案