对于Debug中的valuestack和ActionContext 到底有什么区别?各储存什么样的值啊?
我就是认为valuestack栈中存的是Action的属性,ActionContext存的是封装的Map类型的request,session等对象,是不是这样理解呢?感觉这些值储存非常乱啊,求解

解决方案 »

  1.   

    ValueStack变化比较多,action或迭代对象都会压入此stack。从OGNL语法来看,调用ActionContext的东西要加个#,ValueStack则不用。
      

  2.   

    个人感觉Value stack是值栈,存有当前页面用到的内容。儿Stack Context是栈的上下文,也就是你栈中内容入栈和出栈用到的值。
      

  3.   

    1.ActionContext:
    Action执行时的上下文,可以看作是一个容器(Map容器),每次执行Action之前都会创建新的ActionContext,ActionContext是线程安全的。2.valuestack:
    是值栈,封转Action属性。ActionContext中包含valuestack。
      

  4.   

    struts2将OGNL上下文设置为struts2的ActionContext(但在内部仍然是使用的OgnlContext),并将值栈valueStack作为OGNL的根对象。值栈是通过接口com.opensymphony.xwork2.util.ValueStack来定义的,对应的实现类是com.opensymphony.xwork2.util.OgnlValueStack.struts2在actionContext中除了放置valueStack外,还包括其他对象.
      

  5.   

    application,session,request这些map对象,都是放在actionContext中,和valueStack是一起的。因为他们不是OGNL的根对象,所有在通过OGNL访问时候,需要加#