Closed
Description
版本号:
2.2.1
问题描述:
当前的消息模板中只能通过 ${variableName} 方式插入简单的值,这一块建议可以使用模板引擎,例如freemarker,如果使用freemarker,则可以兼容之前的写法,修改的也很少,经过测试也是ok的
截图&代码:
+import java.io.IOException;
+import java.io.StringWriter;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import com.alibaba.fastjson.JSONObject;
import org.jeecg.modules.message.entity.SysMessage;
import org.jeecg.modules.message.entity.SysMessageTemplate;
import org.jeecg.modules.message.handle.enums.SendMsgStatusEnum;
@@ -7,12 +13,9 @@ import org.jeecg.modules.message.service.ISysMessageService;
import org.jeecg.modules.message.service.ISysMessageTemplateService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
-
-import com.alibaba.fastjson.JSONObject;
-
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import freemarker.template.Configuration;
+import freemarker.template.Template;
+import freemarker.template.TemplateException;
+ @Autowired
+ private Configuration freemarkerConfig;
- if(map!=null) {
- for (Map.Entry<String, String> entry : map.entrySet()) {
- String str = "${" + entry.getKey() + "}";
- title = title.replace(str, entry.getValue());
- content = content.replace(str, entry.getValue());
- }
+ StringWriter stringWriter = new StringWriter();
+ Template template = null;
+ try {
+ template = new Template("SysMessageTemplate", content, freemarkerConfig);
+ template.process(map, stringWriter);
+ } catch (IOException e) {
+ e.printStackTrace();
+ return false;
+ } catch (TemplateException e) {
+ e.printStackTrace();
+ return false;
}
+ content = stringWriter.toString();
Activity
zhangdaiscott commentedon Aug 24, 2020
ok
zhangdaiscott commentedon Sep 4, 2020
已经处理,下个版本发布