从速度模板中的Hashmap中按键获取特定值



我有一个类似的java代码

public static void main(String args[]) throws Exception {
VelocityEngine engine = new VelocityEngine();
engine.init();
Template template = engine.getTemplate("userinfo.vm");
VelocityContext vc = new VelocityContext();
Map<String, Object> jsonResponse = new HashMap<String, Object>();
jsonResponse.put("44", "United Kingdom");
jsonResponse.put("33", "France");
jsonResponse.put("49", null);
vc.put("userList", jsonResponse);
StringWriter writer = new StringWriter();
template.merge(vc, writer);
System.out.println(writer);
}

.vm文件中

#foreach ($mapEntry in $userList.entrySet())
$!{mapEntry.get("44")}
#end

在这里,我试图使用上面的代码获得特定的值,但它没有给出预期的输出

我的预期输出是

United Kingdom

使用此代码迭代映射值。它与您的几乎相同,但请注意:$userList.keySet()而不是$userList.entrySet()$!{userList.get($mapKey )}而不是$!{mapEntry.get("44")}

#foreach($mapKey in $userList.keySet())
$!{userList.get($mapKey )}
#end

如果你只想访问地图的特定值,请尝试以下操作:

$!{userList.get("44")}

Perhttps://velocity.apache.org/engine/1.7/user-guide.html#set:

您可以使用$monkey.Map.get("banana")返回字符串'good',甚至CCD_ 6返回相同的值。

Perhttps://velocity.apache.org/engine/1.7/user-guide.html#index-记法

$foo["bar"] ## Passing a string where $foo may be a Map

相关内容

  • 没有找到相关文章

最新更新