FreeMarker显示数字的时候,比如 ${data.id} 的id为 9183,freemarker会默认显示为 9,183,这样的数据格式传到后台进行整数型格式转换时会转换失败。
解决办法有两种
方法一:
在表达式后面加?c ,默认不加会以","分隔
${data.id?c}
方法二:
避免在每次用到数值的时候都进行转换,可以在freemarker配置文件里配置,将number_format设置为0或#。
以下是spring-mvc关于freemarker的配置:
<!-- freemarker的配置 -->
<bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
<property name="templateLoaderPath">
<value>/WEB-INF/views/</value>
</property>
<!--设置编码 -->
<property name="defaultEncoding" value="UTF-8" />
<!-- 页面数值的显示格式,避免1000显示成1,000 -->
<property name="freemarkerSettings">
<props>
<prop key="number_format">#</prop>
</props>
</property>
</bean>
本文探讨了Freemarker在显示数字时自动添加逗号作为千位分隔符的问题,这可能导致后台整数转换失败。提供两种解决方案:一是使用表达式后加?c的方法;二是通过配置freemarker的number_format属性来全局禁用千位分隔符。

被折叠的 条评论
为什么被折叠?



