场景:java后台代码辨别省市县名称(省市县持久化到数据库3个实体,不同的表关联存储) 然后通过类型拼接id作为key,value为省市县对象
List<CmsShippingAddress> list = addressMng.getList(mid);
for (int i = 0; i < list.size(); i++) {
Integer id = list.get(i).getId();
String prId = list.get(i).getInareaPr();
Province pr = provinceMng.findById(Integer.valueOf(prId));
model.addAttribute("pr"+id, pr);
String ciId = list.get(i).getInareaCi();
City ci = cityMng.findById(Integer.valueOf(ciId));
model.addAttribute("ci"+id, ci);
String coId = list.get(i).getInareaCo();
District co = districtMng.findById(Integer.valueOf(coId));
model.addAttribute("co"+id, co);
}
前台
// 相当于一个function freemarker 宏 使用
<#macro getname key>
${key?eval.name!} // key?eval 相当于对象
</#macro>
<@getname key = "pr"+bean.id/> //自定义标签 key 等于然后 给 key?eval赋值 <@getname key = "ci"+bean.id/><@getname key = "co"+bean.id/>
// 第二种方法
${"pr${bean.id}.name"?eval}