当前位置:网站首页>velocity模板页面四则运算
velocity模板页面四则运算
2022-08-02 14:16:00 【蒲春伟】
1. 整体背景
实习的时候有一个后台工具的小需求,涉及前端的改动且因为比较简单,所以就后端自己完成了。 功能是将数据库里面的数据在后台系统页面上展示出来,但由于在数据库里面存储的数据是美分,而在前台显示要显示为美元,需要要对金额数据进行除10操作(如果是其它除数可能需要考虑到无限小数的问题),于是偷了个懒没有在后端计算,而是直接在前端页面上使用velocity进行四则运算。
2. 解题思路
错误解法
参考JAVA的语法在vm里面直接进行数值的计算,实验结果并不可行,velocity引擎把fundAmount/10当做占位符号,且由于未读取到目标值直接原样输出。
$fundAmount/10
正确解法
对于模板引擎无法理解我们的意图到底是什么,针对我们的占位符是可能存在以下两种意图,通过上面的错误解法的输出结果来看velocity是通过意图二来进行简单的数据加载和渲染
- 模板优先获取占位符号是“fundAmount”的值然后除以10
- fundAmount/10"整体是一个占位符号,然后取fundAmount/10的值进行渲染
那么正确的方案是什么的? 也并非没有解法,velocity考虑到有类似的诉求,可以通过类似类似Linux Shell中的转义符号来将我们具有歧义的占位符号转换成我们期望的四则运算而非直接渲染
#set($fund=$fundAmount / 10)
$fund
3. 总结
每类语言或是某门技术都有其自身的功能,JAVA默认就是用来解决逻辑、条件计算,而velocity天然就是模板渲染语言,通过文件流解析模板里面的占位符号,然后循环占位符号补充完成对应的目标HTML文件。 如果需要需要其完成非模板渲染的工作,则需要通过转义来实现。
边栏推荐
- 【软件测试】用例篇
- 代码细节带来的极致体验,ShardingSphere 5.1.0 性能提升密钥
- 【进程间通信】:管道通信/有名/无名
- CDH(computational Diffie-Hellman)问题以及与离散对数、DDH问题的区别
- Three-way joint interface data security issues
- Mediasoup 杂谈(待完善)
- 对象头和synchronized的升级
- The use of a semaphore/interprocess communication 】 【 Shared memory
- 【软件测试】自动化测试selenium3
- Mysql开启日志并按天进行分割
猜你喜欢
随机推荐
记一次 ThreadLocal 泄漏导致的 shardingsphere-jdbc-core 单元测试偶发失败的排查与修复
转行软件测试,从零收入到月薪过万,人生迎来新转折
静态方法的缺失
Template series-union set
Mysql理解MVCC与BufferPool缓存机制
假的服务器日志(给history内容增加ip、用户等内容)
webrtc 有关 SDP 部分的解析流程分析
ks.cfg 怎么读取光盘 (cdrom) 上的文件并执行对应的脚本
图解MESI(缓存一致性协议)
How to tick the word box?
Homebrew的简单介绍
基类和派生类的关系【继承】/多态和虚函数/【继承和多态】抽象类和简单工厂
smart_rtmpd 的 VOD 接口使用说明
怎么使用 smart_rtmpd 的纯 webrtc 功能?
Apache ShardingSphere 5.1.1 正式发布
华为单臂路由配置,实现不同vlan之间的通信
【solidity智能合约基础】节约gas的利器--view和pure
RouteOS 导入至PVE
一个简单的 erlang 的 udp 服务器和客户端
【网络安全】学习笔记 --00









