gpt4 book ai didi

java - Struts2 中 getContextMap() 和 getValueStack() 之间的区别?

转载 作者:太空宇宙 更新时间:2023-11-04 08:04:21 25 4
gpt4 key购买 nike

请说出以下之间的区别:

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

和:

Map cont = ActionContext.getContext().getContextMap();

最佳答案

Value Stack(取自 struts 邮件列表)

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

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

[模型, Action ]

下面是以下 ognl 的解析方式:

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

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

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

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

上下文映射

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

ActionContext.getContext().getContextMap();

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

更新正如@rees指出的

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

关于java - Struts2 中 getContextMap() 和 getValueStack() 之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12311592/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com