jfinal 项目使用freemarker 页面map集合迭代问题

郭恩洲_OSC博客 发布于 2013/08/30 17:31
阅读 2K+
收藏 0

jfinal 项目使用freemarker 页面map集合迭代问题

控制台一直报:

Caused by: freemarker.template.TemplateModelException: ?size is unsupported for: freemarker.ext.beans.SimpleMethodModel

网上说命名和freemarker命名冲突,替换了好几种不存在这种情况,折腾有几天了 麻烦大牛给看看

页面freemarker迭代情况:

<!--con1-->
<#list foodMap?keys as mapKey>
<div class="carte-tab" <#if mapKey_index = 0>style="display: block"</#if>>
<h3>${mapKey}</h3>
<ul>		
<#list foodMap[mapKey] as mapValue>
<li><img src="${mapValue['imagesrc']}" />
<p>
<strong>${mapValue['fname']}</strong>Price: <span>${mapValue['new_price']}</span><br\></br>
<a href="javascript:void(0)" class="carte_view">&gt;&gt;&nbsp;查看1</a>&nbsp;&nbsp;&nbsp;<a
href="javascript:void(0)" id="${mapValue['fname']}"
class="order_click">订购</a>
</p></li>
</#list>
</ul>
</div>
</#list>
@jfinal

加载中
0
iSea
iSea

你的map里有没有值呢?报错信息不详细哦。

先要判断一下map里有没有东东:

<#if foodMap?? && foodMap?size gt 0> 
<#list foodMap?keys as mapKey>
<#assign mapvalues = foodMap[mapKey]>
    <#if mapValues?size gt 0>
    <#list mavpValues as mapValue>
        ......
    </#list>
    </#if>
</#list>
</#if>
0
gtd
gtd

你贴的代码里没有 ?size  , 贴出完整代码,或者完整报错信息

0
axhack
axhack

jfinal默认不支持map[key]这么取值,map.get(key)这么取值是正确的。

如果想map[key]取值见下面

http://www.oschina.net/question/109135_120320

我这里的demo中封装了map的包装器

iSea
iSea
jfinal中freemarker应该是支持map[mapKey]取值的,我下了jfinal-1.4试了是可以正常取值的。map[mapKey]这个是freemarker的语法,粗略看了下源代码jfinal貌似也没做什么改动。@jfinal 给说一下?
0
JFinal
JFinal

<#list vmap.keySet() as k>
    ${k}
</#list>
见这里:  http://www.oschina.net/question/67067_53660


返回顶部
顶部