解决FreeMarker数字输出中的逗号问题

本文探讨了Freemarker在显示数字时自动添加逗号作为千位分隔符的问题,这可能导致后台整数转换失败。提供两种解决方案:一是使用表达式后加?c的方法;二是通过配置freemarker的number_format属性来全局禁用千位分隔符。

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>   

原文作者技术博客:https://www.jianshu.com/u/ac4daaeecdfe

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值