如何在freemarker模板中将字符串转换为数字
Posted
技术标签:
【中文标题】如何在freemarker模板中将字符串转换为数字【英文标题】:How to Convert a string to number in freemarker template 【发布时间】:2012-06-11 06:43:49 【问题描述】:我想在 freemarker 中将字符串转换为数字。我想根据数字的值进行一些条件检查。 ?number 似乎不起作用。
有什么建议吗?
【问题讨论】:
请更具体地说明您在做什么、如何操作和版本 --number
对我来说很好。
【参考方案1】:
抱歉,?number
工作正常。我无法将转换后的数字与另一个数字进行比较。
这对我不起作用:
<#assign num = numString?number>
<#if num > 100>
</#if>
当我将 (num > 100) 括在括号内时,它起作用了:
<#if (num > 100)>
</#if>
由于比较不起作用,我假设没有发生转换。 我的错。
【讨论】:
<#if num >
应该给出一个错误,指出该值必须是一个数字,但它是一个数字。
是否可以像这样转换数字:freemarker 中的 1,000 到 1000 ?
Freemarker 不喜欢普通的 > 和 Freemarker Manual
@Mady 和其他人:你可能需要两者:value?c?number【参考方案2】:
我觉得你可以这样使用:string?eval
【讨论】:
【参考方案3】:使用下面的代码
<#if num?string > 100?string>
</#if>
它对我有用。
【讨论】:
【参考方案4】:在您的代码中,您使用了右括号,因此 freemarker 正在评估
<#if num >
你应该改用
<#if num gt 100>
这在本文档末尾的 if 语句中进行了讨论 https://freemarker.apache.org/docs/ref_directive_if.html
这适用于某些人而不适用于其他人的原因是括号,这也在文档底部进行了解释
【讨论】:
以上是关于如何在freemarker模板中将字符串转换为数字的主要内容,如果未能解决你的问题,请参考以下文章
如何在 freemarker 语言中将当前日期格式(YYYY-MM-DD HH:MM:SS)转换为(YYMMDD)格式