【问题标题】:FreeMarker arithmetic operations in list iteration java列表迭代java中的FreeMarker算术运算
【发布时间】:2016-11-24 15:46:52
【问题描述】:

我需要在 freemarker 模板中做一些算术运算。我有一个对象列表,我需要应用如下算术运算...

<#list order.orderDetails as orderDetail>
    <tr>
        <#assign orderTotal=${orderDetail.quantity}*${orderDetail.price}>
        <td>${orderDetail.product.productName}</td>
        <td>${orderDetail.quantity}</td>
        <td>${orderDetail.price}</td>
        <td>orderTotal</td>
    </tr>
</#list>

我需要使用此计算的订单总价值,但它不起作用。它显示

语法错误。 assign 标签不接受这种类型的值注入。

【问题讨论】:

    标签: java freemarker


    【解决方案1】:

    这样算术:

    <#assign orderTotal=orderDetail.quantity * orderDetail.price>
    

    像这样引用你的变量:

    <td>${orderTotal}</td>
    

    或者只是:

    <td>${orderDetail.quantity * orderDetail.price}</td>
    

    【讨论】:

    • 我试过你的代码,但它不起作用。它会抛出解析异常,例如“您不能在此处使用“${”,因为您已经处于 FreeMarker-expression-mode。因此,只需编写 myExpression,而不是 ${myExpression}。(仅需要 ${...}在其他情况下需要静态文本,即在 FreeMarker 标记和 ${...}-s 之外。)"
    • @chellapandik 没问题(我使用 freemarker 已经有几年了,但我即将重新投入使用,所以恢复记忆很好!)
    • 因此您可能需要编辑答案以从#assign 中删除${}。顺便说一句,您可以在freemarker-online.kenshoo.com 轻松检查您的语法。
    猜你喜欢
    • 2014-11-13
    • 2015-10-24
    • 2013-11-25
    • 2020-10-05
    • 1970-01-01
    • 2017-11-19
    • 1970-01-01
    • 2012-07-02
    相关资源
    最近更新 更多