Freemarket模板處理
今天設計了一個功能,發郵件,而且郵件的內容是html。html內容裡面帶有動態內容,因此覺得freemarket是個不錯的選擇。
結合同事以前對Freemarket的處理,自己在同事的程式碼的基礎上稍微修改了下,不過估計網路上相同功能的東西太多了。
這樣我們就可以通過getContentFromTemplate()獲取html內容,然後再傳送這個內容到對方的郵件中,
至於模板碼,可以像寫普通的freemarket檔案那麼簡單。
結合同事以前對Freemarket的處理,自己在同事的程式碼的基礎上稍微修改了下,不過估計網路上相同功能的東西太多了。
java 程式碼
- class HtmlTemplateGenerator {
- Configuration cfg = null;
- public HtmlTemplateGenerator(String templatePath) throws IOException {
- cfg = new Configuration();
- cfg.setDefaultEncoding("UTF-8");
- cfg.setDirectoryForTemplateLoading(new File(templatePath));
- cfg.setObjectWrapper(new DefaultObjectWrapper());
- }
- /**
- * 生成靜態檔案
- * @param ftlTemplate ftl模版檔案
- * @param contents ftl要用到的動態內容
- * @param savePath 檔案儲存路徑
- * @param saveFilename 儲存檔名
- * @throws IOException
- * @throws TemplateException
- */
- public void create(String ftlTemplate, Map contents, String savePath, String saveFilename) throws IOException, TemplateException {
- Template temp = cfg.getTemplate(ftlTemplate);
- /* Merge data model with template */
- String realPath = ServletActionContext.getServletContext().getRealPath(savePath);
- System.out.println( saveFilename + ":" + realPath);
- File file = new File(realPath);
- if(!file.exists())
- file.mkdirs();
- Writer out = new OutputStreamWriter(new FileOutputStream(realPath + "/" + saveFilename),"UTF-8");
- temp.process(contents, out);
- out.flush();
- }
- public String getContentFromTemplate(String ftlTemplate, Map contents) throws IOException, TemplateException {
- Template temp = cfg.getTemplate(ftlTemplate);
- /* Merge data model with template */
- StringWriter sw = new StringWriter();
- temp.process(contents, sw);
- return sw.toString();
- }
這樣我們就可以通過getContentFromTemplate()獲取html內容,然後再傳送這個內容到對方的郵件中,
至於模板碼,可以像寫普通的freemarket檔案那麼簡單。
相關文章
- 模板處理
- Nuxt Kit 中的模板處理UX
- spring-boot-note4---freemarketSpringboot
- SpringBoot2 整合FreeMarker模板,完成頁面靜態化處理Spring Boot
- HTML歷理 HTML模板HTML
- 多對一處理 和一對多處理的處理
- JSP 異常處理如何處理?JS
- 下次想在Golang中寫個併發處理,就用這個模板,準沒錯!Golang
- 平滑處理
- 字串處理字串
- 事件處理事件
- Python錯誤處理和異常處理(二)Python
- APM RUEI processor處理程式hang死處理方法
- Python資料處理(二):處理 Excel 資料PythonExcel
- Python影像處理丨5種影像處理特效Python特效
- webgl 影像處理2---影像畫素處理Web
- 【故障處理】ORA-600:[13013],[5001]故障處理
- Apache Beam,批處理和流式處理的融合!Apache
- Python 影像處理 OpenCV (6):影像的閾值處理PythonOpenCV
- Python 影像處理 OpenCV (7):影像平滑(濾波)處理PythonOpenCV
- rust學習十、異常處理(錯誤處理)Rust
- C#基礎之前處理器,異常處理C#
- Python處理JSONPythonJSON
- Java處理emojiJava
- React事件處理React事件
- 影像預處理
- VideoView全屏處理IDEView
- golang處理signalGolang
- TOML 配置處理TOML
- Oracle SQL處理OracleSQL
- linux故障處理Linux
- vue事件處理Vue事件
- python切片處理Python
- iframe高度處理
- 前端Cookie處理前端Cookie
- 異常處理
- redis雪崩處理Redis
- Streams 流處理