FreeMarker数值数据处理问题

时间:2024-03-29 22:26:50

FreeMarker数值数据处理问题

问题所在

FreeMarker数值数据处理问题这里是FreeMarker模板引擎实现的前端页面中的一个点击事件,方法参数是数据库表的主键,依靠该主键来实现编辑对应的行数据,该列的对应数据类型为Integer

模板引擎处理数值的方法是:千分位会插入一个逗号(大概是按价格来处理千分位数据了吧)
FreeMarker数值数据处理问题
这样一个带逗号的数据传到后台用Integer就会出现问题了
FreeMarker数值数据处理问题如图所示,后台的Integer接收到带逗号的数据,会自动截断,只留下了一个字节被Integer接收掉

模板引擎会在后台提示异常:FTL stack trace ("~" means nesting-related):
- Failed at: ${cp.id?c} [in template “computer/edit.ftl” at line 39, column 82]
----] with root cause

freemarker.core.InvalidReferenceException: The following has evaluated to null or missing:
==> cp.id [in template “computer/edit.ftl” at line 39, column 84]
指出了数据转换出现问题,问题行数与解决方法,提示我们使用{cp.id?c}

解决方法

FreeMarker数值数据处理问题“?c”的作用为将数值类型转换为字符串类型,这样就可以免除千分位拼接逗号的现象发生了