没有需求,谈什么技术呢?之前有做过微信模版消息推送,今天遇到一个需求,需求方要求内容可以根据传入的字段自由组合,但是并不是毫无规则的组合,而是根据调用方传入的Json数据填充一个业务方自定义的模版。那么其实这个需求并不难,因为借助模版引擎就可以实现。那么接下来我们就进一步探究一下。
在Java中其实也有很多模版引擎,比如:freemarker、thymeleaf、velocity等,这里的选择freemarker作为我们这次的主角,
那么,在开始之前,先简单的了解它的几个基语法:
- 取值:占位符方式${name},对象方式${obj.name}
- 判断:#if>
- 比较:#if>
- 运算符:${num+num1},${num-num1}
在开始之前,我们需要先引入jar包:
org.freemarkerfreemarker2.3.30
好了,继续我们今天的主题。来,先举个例子,下面是我的微信模版配置
模版key替换内容first该订单信息${orderNo},共支付${money}keyword1${orderNo}keyword2${orderTime}keyword3${money}keyword4${pay}remark说明${orderNo},通过${pay}支付了${money}假如我的请求参数是
{ "orderNo": "5555555", "money": "8888888", "orderTime":"2020-09-03 15:46:56", "pay":"支付宝" }
这里我们就借助freemarker来解析我们的模版,
Map template = new HashMap() {
{ put("first", "该订单信息${orderNo},共支付${money} "); put("keyword1", "${orderNo}"); put("keyword2", "${orderTime}&#