Freemarker 是否将哈希字符串转换为格式化的数字?

Freemarker 是否将哈希字符串转换为格式化的数字?,freemarker,Freemarker,我正在尝试从GeoServer中的模板中输出更漂亮的数字: <#list features as feature> <#if attribute.name="lon" || attribute.name="lat"> <td>${feature[attribute.name].value?round}</td> <#else> <

我正在尝试从GeoServer中的模板中输出更漂亮的数字:

     <#list features as feature>
       <#if attribute.name="lon" || attribute.name="lat">
                <td>${feature[attribute.name].value?round}</td>
       <#else>
                <td>${feature[attribute.name].value}</td>
       </#if>
     </#list>

但是那些人抱怨“期望的散列”,所以我觉得这只是一个语法问题,将散列中的字符串正确地传递给
操作符,这样我就可以在字符串上执行方法了。。。但这让我很困惑。

如果你总是想要4个小数:

${feature[attribute.name].value?string("0.0000")}
如果最多需要4位小数,则
?字符串(“0.######”)


只有当
是字符串时,才需要
数字部分。在这种情况下,您应该编写
[…].value?number?字符串(“0.0000”)
。没有
?number.string这样的东西,因此会出现“预期哈希”错误消息。

如果您总是需要4位小数:

${feature[attribute.name].value?string("0.0000")}
如果最多需要4位小数,则
?字符串(“0.######”)

只有当
是字符串时,才需要
数字部分。在这种情况下,您应该编写
[…].value?number?字符串(“0.0000”)
。没有
?number.string
,因此出现了“预期哈希”错误消息。

请尝试:${((功能[attribute.name].value*10000)?round)/10000}尝试:${((功能[attribute.name].value*10000)?round)/10000}