Velocity Map

来源:http://honda418.javaeye.com/blog/354821

传递一个Map类型到vm页面,然后从vm渲染Map,把结果显示出来!


Java代码
Map<Long, String> map = new HashMap<Long, String>();  
map.put(100000L, "aaaaa");  
map.put(100001L, "bbbbb");  
map.put(100002L, "ccccc");  


vm页面代码:
Velocity代码
#foreach($key in $map.keySet())  
$!map.get($key)  
#end  


此时遍历后能正确输出结果。

-----------------------------------------------------------------------------------------------------------------------------------------------------

如果我现在不想遍历,只需要得到其中一个确定的value:
Velocity代码
$!map.get(100000)  

或者
Velocity代码
$!map.get("100000")  


此时都不能得到我想要的结果。

-----------------------------------------------------------------------------------------------------------------------------------------------------

扫描二维码关注公众号,回复: 693981 查看本文章

问题出在原始的Map类型Long上面,修改代码如下:
Java代码
Map<Integer, String> map = new HashMap<Integer, String>();  
map.put(100000, "aaaaa");  
map.put(100001, "bbbbb");  
map.put(100002, "ccccc");  


Velocity代码
$!map.get(100000)  


或者
Java代码
Map<String, String> map = new HashMap<String, String>();  
map.put("100000", "aaaaa");  
map.put("100001", "bbbbb");  
map.put("100002", "ccccc");  


Velocity代码
$!map.get("100000")  


都能得到正确结果。

看来velocity对Long的支持有点问题。
同样,对Short、Float、Double也有同样的问题。
保险期间,建议用String。。。。。

猜你喜欢

转载自wanxiaotao12-126-com.iteye.com/blog/1945285