java stringtemplate_StringTemplate模板引擎用法

StringTemplate原理是替换掉占位符<>里的参数

这里我是以数据库的模板参数为准,参数替换 只需要改变数据库数据,不用改动代码。

327f88c20bb8590e3a2fd6f2b29a1a08.png

11b3b71bf9142ccc84d44e906ad6408b.png

maven依赖:

org.antlr

ST4

4.0.8

compile

import org.apache.commons.lang3.StringUtils;

import org.stringtemplate.v4.ST;

import java.util.HashMap;

import java.util.Map;

/**

* @author :zhangqiang

* @create :2018-08-23 10:41

**/

public class MessageTemplateUtil {

/**

* 匹配参数,以数据库为准

* @param replaceParamName

* @param param

* @return

*/

public static Map messageTemplateMap(String replaceParamName, Map param) {

String[] paramName = replaceParamName.split(",");

Map templateMap = new HashMap<>();

for (String key : paramName) {

templateMap.put(key,param.get(key));

}

return templateMap;

}

/**

* 消息

* @param StringFormat

* @param replaceParamName

* @param param

* @return

*/

public static String message(String StringFormat, String replaceParamName, Map param) {

if (StringUtils.isBlank(StringFormat)){

return "";

}

ST st=new ST(StringFormat);

if (StringUtils.isNotBlank(replaceParamName)){

if (null !=param && !param.isEmpty()){

String[] paramName = replaceParamName.split(",");

for (String key : paramName) {

st.add(key,param.get(key));

}

}

}

return st.render();

}

//简单的测试一下

public static void main(String[] args) {

Map param=new HashMap<>();

param.put("name","可懿");

param.put("msg","要开心哦~~~");

param.put("year",2018);

param.put("kkk",6666);

System.out.println(message("我是,年!!!","name,msg,year",param));

System.out.println(message("哈哈哈!!!","",null));

}

//输出:我是可懿,2018年要开心哦~~~!!!

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值