velocity模板页面四则运算

1. 整体背景

实习的时候有一个后台工具的小需求,涉及前端的改动且因为比较简单,所以就后端自己完成了。 功能是将数据库里面的数据在后台系统页面上展示出来,但由于在数据库里面存储的数据是美分,而在前台显示要显示为美元,需要要对金额数据进行除10操作(如果是其它除数可能需要考虑到无限小数的问题),于是偷了个懒没有在后端计算,而是直接在前端页面上使用velocity进行四则运算。

2. 解题思路

错误解法

参考JAVA的语法在vm里面直接进行数值的计算,实验结果并不可行,velocity引擎把fundAmount/10当做占位符号,且由于未读取到目标值直接原样输出。

$fundAmount/10

正确解法

对于模板引擎无法理解我们的意图到底是什么,针对我们的占位符是可能存在以下两种意图,通过上面的错误解法的输出结果来看velocity是通过意图二来进行简单的数据加载和渲染

  1. 模板优先获取占位符号是“fundAmount”的值然后除以10
  2. fundAmount/10"整体是一个占位符号,然后取fundAmount/10的值进行渲染

那么正确的方案是什么的? 也并非没有解法,velocity考虑到有类似的诉求,可以通过类似类似Linux Shell中的转义符号来将我们具有歧义的占位符号转换成我们期望的四则运算而非直接渲染

#set($fund=$fundAmount / 10)
$fund

3. 总结

每类语言或是某门技术都有其自身的功能,JAVA默认就是用来解决逻辑、条件计算,而velocity天然就是模板渲染语言,通过文件流解析模板里面的占位符号,然后循环占位符号补充完成对应的目标HTML文件。 如果需要需要其完成非模板渲染的工作,则需要通过转义来实现。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蒲春伟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值