2月27
有一个邮件模板,例如:
亲爱的用户${name},你好,欢迎加入xx系统平台。这种简单的不想去依赖freemarker、velocity这种模板引擎框架,所以自己用正则实现了,如下:
/**
* 替换模板标签变量
*
* @param params 变量键值
* @param templetConent 模板内容
* @return
*/
public String replaceTempletTags(SmsParams params, String templetConent) {
String smsContent;
try {
//生成匹配模式的正则表达式
String patternString = "\\$\\{(" + StringUtils.join(params.getSmsParam().keySet(), "|") + ")\\}";
Pattern pattern = Pattern.compile(patternString);
Matcher matcher = pattern.matcher(templetConent);
//两个方法:appendReplacement, appendTail
StringBuffer sb = new StringBuffer();
while (matcher.find()) {
matcher.appendReplacement(sb, params.getSmsParam().get(matcher.group(1)).toString());
}
matcher.appendTail(sb);
smsContent = sb.toString();
} catch (Exception e) {
throw new RuntimeException("解析模板并替换标签值时失败!" + e);
}
return smsContent;
}
来源:Heck's Blog
地址:https://www.heckjj.com/post/447/
转载时须以链接形式注明作者和原始出处及本声明,否则将追究法律责任,谢谢配合!
亲爱的用户${name},你好,欢迎加入xx系统平台。这种简单的不想去依赖freemarker、velocity这种模板引擎框架,所以自己用正则实现了,如下:
/**
* 替换模板标签变量
*
* @param params 变量键值
* @param templetConent 模板内容
* @return
*/
public String replaceTempletTags(SmsParams params, String templetConent) {
String smsContent;
try {
//生成匹配模式的正则表达式
String patternString = "\\$\\{(" + StringUtils.join(params.getSmsParam().keySet(), "|") + ")\\}";
Pattern pattern = Pattern.compile(patternString);
Matcher matcher = pattern.matcher(templetConent);
//两个方法:appendReplacement, appendTail
StringBuffer sb = new StringBuffer();
while (matcher.find()) {
matcher.appendReplacement(sb, params.getSmsParam().get(matcher.group(1)).toString());
}
matcher.appendTail(sb);
smsContent = sb.toString();
} catch (Exception e) {
throw new RuntimeException("解析模板并替换标签值时失败!" + e);
}
return smsContent;
}
来源:Heck's Blog
地址:https://www.heckjj.com/post/447/
转载时须以链接形式注明作者和原始出处及本声明,否则将追究法律责任,谢谢配合!
程序员该用什么样的姿势来
meta name=&q



