当前位置:网站首页>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文件。 如果需要需要其完成非模板渲染的工作,则需要通过转义来实现。
边栏推荐
- PostgreSQL 协议数据样例
- 【solidity智能合约基础】节约gas的利器--view和pure
- 【软件测试】测试基础讲解
- CDH (computational Diffie-Hellman) problem and its differences with discrete logarithm and DDH problems
- Vert.x web 接收请求时反序列化对象 Failed to decode 如何解决?
- 【网络安全】学习笔记 --02 安全通信协议
- Mysql索引优化二
- [Inter-process communication]: pipe communication/named/unnamed
- OpenPose 命令行说明
- 【软件测试】概念篇
猜你喜欢
随机推荐
Oauth2.0 custom response values and exception handling
PostgreSQL 协议数据样例
【Solidity智能合约基础】-- 基础运算与底层位运算
Oauth2.0 安全性(以微信授权登陆为例)
Mysql开启日志并按天进行分割
【进程间通信】信号量的使用/共享内存
H3C 交换机配置端口组、DHCP、DHCP中继、管理用户
基类和派生类的关系【继承】/多态和虚函数/【继承和多态】抽象类和简单工厂
【软件测试】项目中关于测试人员的简单介绍
Oauth2.0 自定义响应值以及异常处理
screen 不间断会话服务
字符数组/字符串数组|数组指针/指针数组/
Template Series - Dichotomous
Oauth2.0 resource server construction
【软件测试】selenium自动化测试1
Feign Client 超时时间配置不生效
SkyWalking Agent数据采集和上报原理浅析
为什么Volatile能保证双重检查锁的线程安全
The relationship between base classes and derived classes [inheritance] / polymorphism and virtual functions / [inheritance and polymorphism] abstract classes and simple factories
CDN的加速原理是什么?