freemarker map问题求解100分
程序中定义好的:HashMap<Long,List<News>> newsMap = new HashMap<Long,List<News>>();
ftl页面显示
<#list newsMap.keySet() as ntId>
<#list newsMap.get(ntId) as news>
${news.title?if_exists}
</#if>
</#list>
------解决方案--------------------
newsMap的使用是不是应该用${newsMap}
<#list ${newsMap}.keySet() as ntId>
<#list ${newsMap}.get(ntId) as news>
${news.title?if_exists}
</#if>
</#list> 试下 ,
我之前是用json处理这种的
Map<String ,Map<String ,String>> namemap =
new HashMap<String ,Map<String ,String>>();
String map = JSONObject.fromObject(namemap).toString()
ftl下
Ext.titansoft.bpm.resources = {
namedate : ${map},
findByid:function(id){
return this.namedate[id];
}
}
------解决方案--------------------
不行,再试试这个
Action
// Map<String,List<String>> kindsMap = new HashMap<String,List<String>>();
// List<String> aList = new ArrayList<String>();
// aList.add("a1");
// aList.add("a2");
// List<String> bList = new ArrayList<String>();
// bList.add("b1");
// bList.add("b2");
//
//
// kindsMap.put("a",aList);
// kindsMap.pu t("b", bList);
ftl
<#list kindsMap?keys as mKey>
${mKey}
<#assign item = kindsMap[mKey]>
<#list item as itemValue>
${itemValue}
</#list>
</#list>
如果list里还有实体 可直接 ${itemValue.属性}
------解决方案--------------------
${news.title?if_exists}
?if_exists这东西有嘛?先去掉试试,简单点
------解决方案--------------------
#list newsMap?keys as ntId
------解决方案--------------------
因为你的key是Long型而不是String类,需要先转换。
<#list newsMap.get(ntId?long) as news>