Velocity,如何使用另一个速度变量检索hashmap值

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

我的bean里有一个HashMap:

HashMap<String, SomeObject> someHashMap;

然后在速度模板中,我需要使用我从其他来源获得的速度值来访问HashMap(实际上我有很多键,这不仅仅是我需要以这种方式获取值的原因):

$key

如何使用此密钥访问hashmap?我尝试着:

$someHashMap.get($key)

${someHashMap.get($key)}

但是这两个只对输出写了相同的东西,这意味着我用第一行得到了:

$someHashMap.get($key)

在网页中。

这是正确的方法/语法?

谢谢!

velocity
2个回答
0
投票

两者都是正确的语法,它们应该工作。

  • $key有正确的价值吗?打印出来。
  • $someHashMap确实指向地图吗?打印出来。如果没有,也许你忘了放入正在使用的VelocityContext
  • 值是否存储在该密钥null下? Velocity的默认行为是打印出结果为null时调用的代码。要使其不这样做,请使用无声符号:$!{someHashMap.get($key)}

0
投票

我有同样的问题。在我的情况下,我试图这样做:

$map.get($locale)

其中$locale是例如"fi_FI"。我通过在括号内添加引号来解决它:

$map.get("$locale")

我不确定,但我认为理由是这样的:

$map.get( $locale ) -> $map.get( fi_FI ) -> Velocity gets confused

$map.get("$locale") -> $map.get("fi_FI") -> Velocity retrieves correct value
© www.soinside.com 2019 - 2024. All rights reserved.