Freemarker:在关联数组中赋值

Freemaker: assign value in associative array

我是 Freemarker 的新手。我正在尝试创建一个电子邮件模板,该模板将列出发票,然后在底部列出应付总额。但是,需要根据货币设置不同的 "Total Amount"(一些客户可能有 3 张欧元发票、2 张英镑发票等)。 我正在创建一个关联数组,其中键是货币,值是该货币的总额。对于每张发票,我需要根据正确货币的价值添加金额。但是我收到一个错误消息,指出存在意外字符。 要点如下:

<#assign totalarr = {} />
<#list invoicelist as invoice>
    <#assign invcur = invoice.currency />
    <#assign invamt = invoice.amountremaining />
    <#assign totalarr[invcur] = totalarr[invcur] + invamt />
</#list>

错误出现在倒数第二行,我正在尝试将金额添加到总值中。有任何想法吗? 谢谢! -克里斯汀

要更改散列子变量值,您需要像这样使用 concatenation

<#assign totalarr = {} />
<#list invoicelist as invoice>
    <#assign invcur = invoice.currency />
    <#assign invamt = invoice.amountremaining />
    <#assign sum = totalarr[invcur]!0  />
    <#assign totalarr = totalarr + {invcur : sum + invamt} />
</#list>
<#list totalarr?keys as key>
${key} = ${totalarr[key]}
</#list>