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>