FTL算术运算问题求助:表达式未求值且num变量报错
FTL算术运算未执行及空值错误解决方法
问题分析
- 直接写
${num} + 1时,FreeMarker会把${num}输出为变量值,后面的+1被当作普通文本拼接,无法触发算术运算。 - 使用
${num?number} + 1时,若num变量不存在或为null,?number无法对空值做类型转换,因此抛出空值错误。
解决代码
{ "U": ${(num!0)?number + 1} }
代码说明
num!0:给num设置默认值0,当num不存在或为null时自动使用该值,规避空值错误。?number:将num(或默认值0)转换为数字类型,保证后续加法运算能正常执行。+1:基于数字类型执行算术加法,最终输出计算后的结果。
验证结果
当num的值为10时,输出结果符合预期:
{ "U": 11 }
当num不存在或为null时,输出:
{ "U": 1 }
内容的提问来源于stack exchange,提问作者Lan Aaroon Jabasundar
相关产品推荐
相关产品推荐

