请说出以下之间的区别:
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/