freemarker 不支持 boolean 类型 :Templates do break when an attribute contains a boolean value

探讨了在使用Freemarker模板引擎时遇到的问题,当布尔类型值直接用于模板渲染时会导致NonStringException异常,并提供了几种解决方法。
  • If in a template <td>${attribute.value}</td> is used, and value is boolean, the following exception is thrown:
    freemarker.core.NonStringException: Error on line 19, column 3 in description.ftl
    Expecting a string, date or number here, Expression a.value is instead a freemarker.ext.beans.BooleanModel
    - quote: "..Unlike numbers, booleans has no commonly accepted format, not even a
    common format within the same page. Like when you show on a HTML page.."
    "...The common way of formatting a boolean is like ${washable?string("yes", "no")},
    ${caching?string("Enabled", "Disabled")}, ${heating?string("on", "off")}, etc..."
    - By the other hand, the Features used in the unit test for FeatureTemplate contained no boolean properties. Adding a boolean property to the test data still didn't make the error to show up, as the template used uses <td>${attribute.value.toString()}</td>. Changing the template to use <td>${attribute.value}</td> exposes the error.
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值