在FTL中使用?string(" 0.00")时出错

时间:2017-02-16 05:25:21

标签: java freemarker

在我的FTL文件中使用?string(" 0.00")时出现以下错误

${currency}${discount?string("0.00")}

折扣是BigDecimal类型,来自我的java代码。

  

2017-02-16 10:48:08.481 [http-nio-80-exec-3]错误freemarker.runtime - 模板处理错误:"预期方法。折扣?字符串被评估为WEB-INF / views / abc / abc-result.ftl中第154行的第56行上的freemarker.template.SimpleScalar。"   freemarker.template.TemplateException:预期的方法。折扣?字符串在WEB-INF / views / abc / abc-result.ftl的第56行第154行上评估为freemarker.template.SimpleScalar。       at freemarker.core.TemplateObject.invalidTypeException(TemplateObject.java:136)~ [freemarker-2.3.19.jar:2.3.19]       at freemarker.core.MethodCall._getAsTemplateModel(MethodCall.java:114)〜[freemarker-2.3.19.jar:2.3.19]       at freemarker.core.Expression.getAsTemplateModel(Expression.java:89)〜[freemarker-2.3.19.jar:2.3.19]       at freemarker.core.Expression.getStringValue(Expression.java:93)〜[freemarker-2.3.19.jar:2.3.19]

1 个答案:

答案 0 :(得分:0)

我碰巧修复了它。我将其更改为 ${currency}${discount?number?string("0.00")} 我正在从 java 端传递 BigDecimal 但不确定为什么我需要再次转换为数字