Struts2中getContextMap()和getValueStack()的区别?

问题描述 投票:0回答:2

请说出以下两者的区别:

ValueStack stack=ActionContext.getContext().getValueStack();

和:

Map cont = ActionContext.getContext().getContextMap();
java string struts2
2个回答
1
投票

Value Stack(取自 struts 邮件列表)

值栈本质上是一个列表。在堆栈上调用 [1], 返回一个以索引 1 处的元素开始的子栈。它只是 当您调用堆栈上的方法时,您的实际对象将是 打电话了。

换句话说,假设我有一个值堆栈,其中包含 模型和动作如下:

[模型、动作]

以下是以下 ognl 的解决方法:

[0] - 包含我们的堆栈的CompoundRoot对象,[模型,操作]

[1] - 另一个仅包含[action]的CompoundRoot

[0].toString() - 对值中的第一个对象调用 toString() 支持toString()方法的堆栈(不包括CompoundRoot)

[1].foo - 对值堆栈中的第一个对象调用 getFoo() 从 [OS:action] 开始并排除支持 getFoo() 方法

上下文映射

ActionContext 是执行 Action 的上下文。每个上下文基本上都是执行操作所需的对象的容器,例如会话、参数、区域设置等。

ActionContext.getContext().getContextMap();

使您能够访问正在执行的上下文映射。例如,您需要访问应用程序上下文,而不是使用上述方法返回的映射来访问应用程序上下文

更新 正如@rees

所指出的

ActionContext 的上下文映射几乎是 ValueStack 的支持(上下文)映射


0
投票

getContextMap() - 类 com.opensymphony.xwork2.ActionContext 中的方法 获取上下文映射。该方法获取上下文映射。

getValueStack() - 类 com.opensymphony.xwork2.ActionContext 中的方法 获取 OGNL 值堆栈。 此方法获取此请求的当前值堆栈并返回值堆栈。有关此方法的详细信息。

© www.soinside.com 2019 - 2024. All rights reserved.