请描述一下Struts2的值栈结构,以及它是如何工作的?

值栈 Value Stack

值栈是Struts2框架的核心概念所有的核心组件都以某种方式与之进行交互它提供对上下文信息和执行环境中元素的访问机制值栈的内容由如下4个层级组成

1.临时对象

这些对象在请求处理中需要临时保存比如集合中当前正在被迭代的元素

2.模型对象

action实现了ModelDriven接口模型对象就会被存放在栈中action对象前如果action没有实现该接口这个级别的内容将不存在

3.Action对象

此对象是当前正在执行的action。

4.命名对象  OGNL上下文环境

任何对象都可以被赋予一个标识符而成为命名对象。Struts2内建的命名对象有:#application、#session、#request、#attr、#parameters

使用值栈不需要压栈和弹栈可直接使用OGNL表达式来查找或求值。OGNL表达式会在每个层级测试层级测试的顺序按照层级顺序进行如果各层级都没有求出结果那么则返回null

Java Program!
原文地址:https://www.cnblogs.com/programb/p/12995912.html