package com.hx.slj.modules.zyb.TemplateParsing;
import java.util.Map;
import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class TemplateParsing {
public static String renderString(String content, Map<String,String> map){
Set<Map.Entry<String,String>> sets = map.entrySet();
try{
for(Map.Entry<String,String> entry : sets){
String regex = "\\{\\{" + entry.getKey() + "\\}\\}";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(content);
content = matcher.replaceAll(entry.getValue() == null ? "null" : entry.getValue());
}
}catch (ClassCastException e){
new ClassCastException("格式错误,模板解析时map都应为string类型");
return "格式错误,模板解析时map中的value都应为string类型";
}
return content;
}
}
使用方法
@Test
public void test(){
zybTj zybTj = new zybTj();
zybTj.setQyName("测试");
HashMap<String,String> HashMap = JSON.parseObject(JSON.toJSONString(zybTj,SerializerFeature.WriteMapNullValue),HashMap.class);
String nameStr = "您所管理的区县中区县为{{areaName}},企业名为:{{qyName}}的企业,下次上传{{xmmc}}时间为{{tjDate}},请尽快处理!";
System.err.println("序列化成map的值: "+HashMap);
String result = TemplateParsing.renderString(nameStr,HashMap);
System.err.println("模板解析后的值: "+result);
}
运行截图