Valuestack | 学习笔记

简介: 快速学习 Valuestack,介绍了 Valuestack 系统机制, 以及在实际应用过程中如何使用。

开发者学堂课程【Java Web开发系列课程 - Struts2框架入门Valuestack】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/537/detail/7307


Valuestack

 

值栈和 ognl

1. OGNL 查询值时是在根对象 sturts2中的根对象就是 valuestack 查询。

2. 除了 valuestack 中的值,其他 ActionContext 中的内容需要增加来标示。

加#,告诉 ognl 不要在根对象中寻找,而是在其他上下文对象中寻找相关值。

3. 值栈的概念,即 valuestack 是 ActionContext 中的一个对象或称为属性。

从构造和本质上来说是 ActionContext 中的对象。

Sets the OGNL value stack.

ognl 表达式是从值栈开始取值。就是上述值栈就是 ognl 查询的根对象。

值栈是栈结构,其特征是 FILO(先进后出)

默认执行结束后,会将 Action 中的数据放入根对象中。正常情况下,执行结束后,只压一个对象,即 action 对象。但是,值栈中的情况是,Strusts2中值栈存放的数据是 Action 对象。这就是其本质。

Loginaction 对象有些属性之类,所以他们的属性值也一同放入其中。其中有个特殊的地方,一般的 loginaction 会将 ognl 这一层屏蔽掉。我们就不用去访问它,这就是值栈。

image.png

既然是值栈,我们也可以向其中放数据,但是我们放入的数据会将其中原有的action数据压掉。

比如,栈数据,会从上往下压,会将下面的数据挡住。假如属性名和下面的相同,就只能访问到上面的。如果不是对值栈特别了解,不建议操作值栈。 

Action 中可以获得 value stack。这个是栈,栈里面可以 push 对象,看对应值栈,从值栈中可以获得 getcontext。找值栈的起始,它的指向内。

一般是 defult,或者从文档中寻找,找文档,strust2,document,在此文档中查找value stack。可以找出它的接口。

Ognl value stack,可以向其中放数据。其中有 getroot,返回根元素。还有 pop 等如下图。

image.png

本质是一个 least,限制了数据的方向,包括队内也相同。为了使用 ognl 表达式,由类ognl value stack 来实现。

过于复杂的不建议大家使用,因为操作不好会把原有数据覆盖。需要特别注意。

相关文章
|
存储 Java C++
struts2为何使用值栈,如何获取值栈对象
struts2为何使用值栈,如何获取值栈对象
79 0
struts2为何使用值栈,如何获取值栈对象
|
Java 开发者
ActionContext、ValueStack、OGNL | 学习笔记
快速学习 ActionContext、ValueStack、OGNL 代理,介绍了 ActionContext、ValueStack、OGNL 系统机制, 以及在实际应用过程中如何使用。
36 0
|
安全 Java API
ActionContext 二 | 学习笔记
快速学习 ActionContext 二,介绍了 ActionContext 二系统机制, 以及在实际应用过程中如何使用。
70 0
ActionContext 二 | 学习笔记
|
移动开发 安全 Java
ActionContext 一 | 学习笔记
快速学习 ActionContext 一 ,介绍了 ActionContext 一 系统机制, 以及在实际应用过程中如何使用。
96 0
ActionContext 一 | 学习笔记
|
存储 Java 对象存储
Struts2【OGNL、ValueStack】
Struts2【OGNL、ValueStack】
88 0
Struts2【OGNL、ValueStack】
Struts2中:值栈(ValueStack)、值栈中的Action实例、Struts2中的其他命名对象 小结
值栈(ValueStack)        Struts2将OGNL上下文设置为Struts2中的ActionContext(内部使用的仍然是OgnlContext),并将值栈设为OGNL的根对象。
1511 0
|
存储 Java
Struts2【OGNL、valueStack】就是这么简单
什么是OGNL表达式? OGNL是Object Graphic Navigation Language 是操作对象属性的开源表达式。 Struts2框架使用OGNL作为默认的表达式语言。 为什么我们学习OGNL 在学习JSP的时候,我们已经学习过了EL表达式。
2058 0

热门文章

最新文章