场景:初始化复选框
1.通过一个List列表,列出所有的复选框。
2.通过一个Map参数,初始化选中的复选框。
场景总结
在velocity中,Map对象的key必须是string才能识别到,一开始用Long型总是无法识别。以下看代码详细:
VM代码:
<div class="span8">
<div class="pull-right">
<label class="control-label superLable">物流关系:</label>
<div class="controls">
<input type="checkbox" id="all">
<input type="button" value="全选" class="btn" id="selectAll">
</div>
<div class="controls">
<ul id="list">
#foreach($param in $expressList)
#if($!shopexpressMap.get($!{param.id}))
<li><label><input type="checkbox" value="$!{param.id}" checked>$!{param.expressFullName}</label></li>
#else
<li><label><input type="checkbox" value="$!{param.id}">$!{param.expressFullName}</label></li>
#end
#end
</ul>
</div>
</div>
</div>
Java代码
{
LogUtil.info(MODULE, "========= 编辑店铺物流信息 开始 ============");
//获取所有物流列表信息
BaseExpressReqDTO sdto = new BaseExpressReqDTO();
List<BaseExpressRespDTO> expressListBack = baseExpressRSV.fetchAllExpressInfo(sdto);
List<TmpTestVO> expressList = new ArrayList<TmpTestVO>(expressListBack.size());
for(BaseExpressRespDTO dto: expressListBack)
{
TmpTestVO vo = new TmpTestVO();
vo.setId(String.valueOf(dto.getId()));
vo.setExpressFullName(dto.getExpressFullName());
vo.setExpressName(dto.getExpressName());
expressList.add(vo);
}
//获取该店铺对应的物流列表
Map<String, ShopExpressResDTO> shopexpressMap = shopInfoRSVDubbo.listShopExpress(Long.valueOf(shopId));
model.addAttribute("expressList", expressList);
model.addAttribute("shopexpressMap", shopexpressMap);
LogUtil.info(MODULE, "========= 编辑店铺物流信息 结束 ============");
return "/staff/shop/express/shop-express";
}