Velocity遍历map与遍历list

问题:
向页面传递key与value的组合

1.

1.1 思路,key与value,想到用map

private Map<String,String> lineBusiness = new HashMap<String,String>() ;
lineBusiness.put("abc","bcd");
lineBusiness.put("dbc","bcd");
lineBusiness.put("gbc","bcd");

velocity中遍历map

#foreach($param in ${lineBusiness.entrySet()})
${param.key} ${param.value}
#end


但 key不是按照添加顺序显示的
原因:map的key是hash值,是随机的,不是按照顺序输出的

业务要求,要按照添加顺序显示

1.2

如果要求按顺序输出可以采用

Map<K,V> map = new LinkedHashMap() ;
#foreach($infos in $lineBusiness.entrySet())
${infos.key} ${infos.value}
#end

按添加顺序显示

1.3
遍历map中的key

#foreach($infos in $lineBusiness.keySet())
${infos}
#end

遍历map中的value

#foreach($infos in $lineBusiness.values())
${infos}
#end

1.4
java中map里面的key是否可以按我们插入进去的顺序输出?
综上,取决于实现map的方式,若为LinkedHashMap,则可以

2.组装key与value为po类

2.1 在已有类的内部定义,即内部类

List<po> list = new ArrayList<po>();
po.setKey("");
po.setValue("");
list.add(po);

velocity中遍历list

#foreach($info in $list)
$!info.value $info.key
#end

确认list已经赋值,但页面没有显示,原因 po 必须 是public 的访问权限,
且 对该 成员变量添加 set get 方法,才可传值到VM中

而 一个类中 只能有一个类是 public的,其余的类都不可以是 public,
即 定义内部类,是不能传值的

2.2 在同包或其他包中定义po类,引用该po类进行实现

效果:正确

这种方式也可以实现,但若属性不是很多的时候,不建议这样做,浪费时间且代码不好维护
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值