列表迭代java中的FreeMarker算术运算

列表迭代java中的FreeMarker算术运算,java,freemarker,Java,Freemarker,我需要在freemarker模板中做一些算术运算。我有一个对象列表,我需要应用如下算术运算 <#list order.orderDetails as orderDetail> <tr> <#assign orderTotal=${orderDetail.quantity}*${orderDetail.price}> <td>${orderDetail.product.productName}</td&g

我需要在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>

${orderDetail.product.productName}
${orderDetail.quantity}
${orderDetail.price}
订单总数
我需要使用此计算的订单总值,但它不起作用。它表明

语法错误。assign标记不接受此类值注入


执行如下运算:

<#assign orderTotal=orderDetail.quantity * orderDetail.price>
<td>${orderTotal}</td>

如下所示引用变量:

<#assign orderTotal=orderDetail.quantity * orderDetail.price>
<td>${orderTotal}</td>
${orderTotal}
或者只是:

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

执行如下运算:

<#assign orderTotal=orderDetail.quantity * orderDetail.price>
<td>${orderTotal}</td>

如下所示引用变量:

<#assign orderTotal=orderDetail.quantity * orderDetail.price>
<td>${orderTotal}</td>
${orderTotal}
或者只是:

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

我尝试了你的代码,但不起作用。它抛出类似“您不能在这里使用“${”,因为您已经处于FreeMarker表达式模式。因此,不使用${myExpression},只需编写myExpression。(${…}仅在需要静态文本的情况下才需要,即,在FreeMarker标记和${…}-s之外)。@chellapandik没有问题(我使用freemarker已经有几年了,但我即将重新使用它,所以刷新我的内存很好!)因此,您可能希望编辑您的答案,以从
\assign
中删除
${}
。顺便说一句,您可以在处轻松检查语法。我尝试了您的代码,但不起作用。它会引发类似于的解析异常“您不能在这里使用“${”,因为您已经处于FreeMarker表达式模式。因此,不使用${myExpression},只需编写myExpression。(${…}仅在需要静态文本的地方使用,即,在FreeMarker标记和${…}-s之外)。@chellapandik没有问题(我与freemarker合作已有几年了,但我即将重新开始,因此刷新我的记忆很好!)因此,您可能希望编辑您的答案,以从
#assign
中删除
${}
。顺便说一句,您可以随时轻松检查语法。