velocity对set 类型的支持 map get输出问题分析

本文讨论了Velocity在处理Map<Long, String>时,通过get(111)无法获取值的问题。分析源码发现,Velocity将111默认处理为Integer,导致与Long类型的键不匹配。解决方案可能是使用Map的entrySet遍历或升级Velocity版本以期望可能的改进。" 18505831,670640,NIO实现的长连接详细解析与实践,"['nio', '网络编程', '连接池', '客户端服务器通信', '数据格式']
摘要由CSDN通过智能技术生成

今天使用velocity在java后台渲染一个map<Long,String>对象到vm模板上,通过get(111)获取不到map的对象的值分析。


这是velocity1.6.4的处理,以后版本是不是解决了这个问题可以再查,个人认为在vm文件支持跟java一样加个L表示long之类的处理应该不难。



 

具体代码如下:

 

后台java生成设置代码

Map<Long,String> map = new HashMap<Long,String>();
         map.put(101L,"aaa");
         map.put(102L,"bbb");
         context.put("longMap",map);
         
         Map<Integer,String> intMap = new HashMap<Integer,String>();
         intMap.put(101,"aaa");
         intMap.put(102,"bbb");
         context.put("intMap",intMap);

vm文件输出代码:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值