当前位置:网站首页>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文件。 如果需要需要其完成非模板渲染的工作,则需要通过转义来实现。
边栏推荐
- 个人成长系列:好问题清单
- smart rtmpd web 接口说明
- 小知识系列:Fork之后如何与原仓库分支同步
- 记一次 ThreadLocal 泄漏导致的 shardingsphere-jdbc-core 单元测试偶发失败的排查与修复
- Template Series - Dichotomous
- CDN的加速原理是什么?
- Oauth2.0 security (take WeChat authorized login as an example)
- smart_rtmpd 轻松突破 C100K 测试
- [Inter-process communication]: pipe communication/named/unnamed
- Mysql锁机制与事务隔离
猜你喜欢
随机推荐
【solidity智能合约基础】节约gas的利器--view和pure
Doubly linked list (normal iterators and const iterators)
Oauth2.0 authentication server adds verification code login method
【网络安全】学习笔记 --02 安全通信协议
Mysql-Explain与索引详解
Mysql索引优化二
Oauth2.0 Supplement
HCIE学习记录——数据封装与常用协议(TCP/UDP)
The use of a semaphore/interprocess communication 】 【 Shared memory
OpenPose 运行指令 ([email protected])
OpenPose 基本理念
smart_rtmpd 的 NAT 映射方式使用说明
WebRTC 中有关 Media Stream & Track & Channel 之间的关系
MYSQL5.7详细安装步骤
深入理解负载均衡
screen 不间断会话服务
OpenPose run command ([email protected])
Template Series - Dichotomous
hybrid 实现同网段但不同vlan之间通讯
WeTest----如何查看Wetest生成测试报告?









