Action Context就是Stack Context栈上下文;
Stack Context、ActionContext或者OGNL上下文都是一个东西:Ognl.getValue(exp,context,root)中的context。
Value Stack 值栈,Stack Context 栈上下文都可以使用#进行访问;
值栈用#访问的时候需要用#root.格式(简写可去掉#root),
栈上下文用必须用#访问:#context.格式访问(简写可去掉#context)
值栈(Value Stack)存放的是action(name映射类)的实例和调用ActionContext.getContext().getValueStack().getRoot().push(user);方法手动放到值栈的实例;如下图:
栈上下文存放的是所有的数据信息,例如:page、request、 session、application、attr、parameters等等;
值栈的信息其实也存放在栈上下文的,但是在栈上下文中调出值栈的信息语法不一样而已;
例如:在action类中:ActionContext.getContext().getValueStack().getRoot().push(user);将user示例放到值栈中;然后在jsp页面通过值栈和栈上下文分别调出username和password;如下图;
网上找了一个参考图: