免费标记:freemarker.core.InvalidReferenceException

时间:2013-11-12 08:58:50

标签: java spring freemarker

我使用freemarker模板,我在下面的ftl文件中给出了代码。

<#if (actionErrors?exists && actionErrors?size > 0)>
    <ul>
    <#list actionErrors as error>
        <li><span<#rt/>
<#if parameters.cssClass?exists>
 class="${parameters.cssClass?html}"<#rt/>
</#if>
<#if parameters.cssStyle?exists>
 style="${parameters.cssStyle?html}"<#rt/>
</#if>
>${error}</span></li>
    </#list>
    </ul>
</#if>

上面的代码给出了以下错误。

  

freemarker.core.InvalidReferenceException:表达式错误是   第33行未定义

我用&lt; #if error.value ??&gt;包装$ {error}并再次尝试。它仍然给出了同样的问题。然后我使用了here中的$ {error.value!&#39; N / A&#39;}。它仍然没有解决问题。请帮帮我。

提前谢谢你。

谢谢。

1 个答案:

答案 0 :(得分:3)

如前所述,error值似乎未设置。当你这样做时:

${error.value!"Default"}

...如果未设置value的{​​{1}}属性,则提供默认值。它仍然假定已设置error,以便它可以从中获取error属性。如果你这样做:

value

...如果未设置 <{em> ${(error.value)!"Default"} error,默认设置将适用。括号表示“将默认值应用于所附表达式”。如果Freemarker在解析所附表达式时在任何地方遇到缺失值,则它将应用默认值。

这也适用于error.value运算符:

??