当前位置:网站首页>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文件。 如果需要需要其完成非模板渲染的工作,则需要通过转义来实现。
边栏推荐
猜你喜欢
随机推荐
【线程网络】了解线程属性(fork/interview question)
【网络安全】学习笔记 --02 安全通信协议
类模板/赋值运算和加等运算
Priority table and Ascll table
smart_rtmpd 的 VOD 接口使用说明
优先级表和Ascll表
JVM常量池详解
Template series-union set
Homebrew的简单介绍
【线程】线程创建 | 理解线程并发 (1)
项目管理模块-项目权限功能开发
【软件测试】selenium自动化测试2
OpenPose Basic Philosophy
分布式一致性协议-Paxos
计算机网络中的安全(一)网络安全的概念与加密原理
【软件测试】概念篇
华为Mux VLAN 二层流量隔离
使用三个线程,按顺序打印X,Y,Z,连续打印10次
LAMP环境 源码编译安装(Apache 2.4.52 +mysql 8.0.28+php 8.1.3)
【线程安全】用户级,内核级,组合级线程|线程同步的处理(条件变量)|strtok_r(可冲入函数)