方法一:
//测试模板
@Test
public void getTest(){
//先获取模板
String temp ="你预约了${name}医院,请及时取号,在${startTime}-${endTime}前到!";
TestDTO testDTO = new TestDTO();
testDTO.setName("青岛");
testDTO.setStartTime("11:30");
testDTO.setEndTime("14:50");
//调用方法
String templateInfo = this.getTemplateInfo(temp, testDTO);
System.out.println("消息模板内容----:"+templateInfo);
}
/**
* 获取模板信息方法
* @param templateInfo 模板
* @param classObject 要拼接的类
* @return
*/
public String getTemplateInfo(String templateInfo,Object classObject){
Field[] fields = classObject.getClass().getDeclaredFields();
try {
for (Field field : fields) {
field.setAccessible(true);
String fieldName = field.getName();
String fieldValue = null == field.get(classObject) ? "" : field.get(classObject) + "" ;
if (templateInfo.contains(fieldName)){
String nameStr = "${" + fieldName + "}";
templateInfo = templateInfo.replace(nameStr, fieldValue);
}
}
} catch (IllegalAccessException e) {
e.printStackTrace();
}
return templateInfo;
}
//要铺数据的类
@Data
class TestDTO{
private String name;
private String startTime;
private String endTime;
}
打印的匹配结果:
用的hutool的工具类
import cn.hutool.core.util.StrUtil;
- //测试模板
- @Test
- public void getTest1(){
-
- //先获取模板
- String temp ="你预约了{}医院,请及时取号,在{}-{}前到!";
-
- //调用方法
- String templateInfo = StrUtil.format(temp,"青岛","2:00","3:00");
- System.out.println("消息模板内容----:"+templateInfo);
- }
打印的匹配结果:
用的hutool的工具类
//测试模板 @Test public void getTest2(){ //先获取模板 String temp ="你预约了{name}医院,请及时取号,在{startTime}-{endTime}前到!"; TestDTO testDTO = new TestDTO(); testDTO.setName("青岛医院"); testDTO.setStartTime("11:30"); testDTO.setEndTime("14:50"); // bean转map Map map = JSON.parseObject(JSON.toJSONString(testDTO), Map.class); //调用方法 String templateInfo = StrUtil.format(temp,map); System.out.println("消息模板内容----:"+templateInfo); }
打印结果: