是什么是值栈?
简单的说,值栈就是框架创建的一个存储区域,用来保存Model对象(自定义Action对象的属性都会放到值栈中)。它具有栈的特征,可以存放多个对象,如果存放多个对象,他们是按照先后顺序要入堆栈的(先进后出)。当使用OGNL表达式查找对应的属性时,会从栈顶开始一次往下找,一直找到栈底。
下面看一张图
我们可以看到对于Age表达式来说,取到的属性为myModel的age属性,因为它存在与栈顶;而对于id属性来说,它取到的则是myAction的id属性,因为在它之前没有id属性。
注:我们只需要了解值栈,必要的时候我们从值栈中取数据,而不建议我们自己操纵值栈。
简单的说,值栈就是框架创建的一个存储区域,用来保存Model对象(自定义Action对象的属性都会放到值栈中)。它具有栈的特征,可以存放多个对象,如果存放多个对象,他们是按照先后顺序要入堆栈的(先进后出)。当使用OGNL表达式查找对应的属性时,会从栈顶开始一次往下找,一直找到栈底。
下面看一张图
我们可以看到对于Age表达式来说,取到的属性为myModel的age属性,因为它存在与栈顶;而对于id属性来说,它取到的则是myAction的id属性,因为在它之前没有id属性。
注:我们只需要了解值栈,必要的时候我们从值栈中取数据,而不建议我们自己操纵值栈。