freemarker循环序列错误

时间:2015-11-24 06:55:34

标签: freemarker

我正在尝试使用此代码检索数据

<tests>
<#if tests?exists>
<#list tests as object >
<test>
<#list object?keys as key >
    <${key}>
        <#if object[key]?exists>
            <#if object[key]?is_hash> HASH  
                <#elseif object[key]?is_sequence>                   
                    <#list object[key] as hashKey>

                    </#list>
            <#else> ${object[key]}</#if><#else>null
        </#if>
    </${key}>
</#list>
</test>
</#list>
</#if>

但收到错误?size is unsupported for: freemarker.ext.beans.SimpleMethodModel

<#elseif object[key]?is_sequence> sequence返回序列。据我所知,我的object[key]是一个序列。 有什么想法吗?

1 个答案:

答案 0 :(得分:1)

发生该错误是因为由于某些历史错误,Java方法是序列(内置ObjectWrapper - s,即),但它们不实现?size。 (它们是序列,因此foo.m[x]等同于foo.m(x))。将&& !something?is_method添加到条件中避免这种情况。