Velocity渲染JAVA传递过来的Map

本文探讨了使用Velocity模板引擎处理Map类型数据时遇到的问题,特别是当Map的键为Long类型时,无法直接获取对应的值。文章通过修改键的类型为Integer或String解决了这一问题,并建议在实际应用中采用String作为键的类型。
摘要由CSDN通过智能技术生成
传递一个Map类型到vm页面,然后从vm渲染Map,把结果显示出来!

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


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


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

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

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

或者
$!map.get("100000")


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

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

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


$!map.get(100000)


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


$!map.get("100000")


都能得到正确结果。

看来velocity对Long的支持有点问题。
同样,对Short、Float、Double也有同样的问题。
保险期间,建议用String。。。。。 :shock:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值