Action Context中值栈(value Stack )栈上下文(Stack context)的个人理解

时间:2021-12-27 22:03:03

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);方法手动放到值栈的实例;如下图:

Action Context中值栈(value Stack )栈上下文(Stack context)的个人理解


栈上下文存放的是所有的数据信息,例如:page、request、 session、application、attr、parameters等等;

值栈的信息其实也存放在栈上下文的,但是在栈上下文中调出值栈的信息语法不一样而已;

例如:在action类中:ActionContext.getContext().getValueStack().getRoot().push(user);将user示例放到值栈中;然后在jsp页面通过值栈和栈上下文分别调出username和password;如下图;

Action Context中值栈(value Stack )栈上下文(Stack context)的个人理解


网上找了一个参考图:

Action Context中值栈(value Stack )栈上下文(Stack context)的个人理解