今天设计了一个功能,发邮件,而且邮件的内容是html。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());
- }
-
-
-
-
-
-
-
-
-
-
- public void create(String ftlTemplate, Map contents, String savePath, String saveFilename) throws IOException, TemplateException {
- Template temp = cfg.getTemplate(ftlTemplate);
-
-
- 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);
-
- StringWriter sw = new StringWriter();
- temp.process(contents, sw);
- return sw.toString();
- }
-
这样我们就可以通过
getContentFromTemplate()获取html内容,然后再发送这个内容到对方的邮件中,
至于模板码,可以像写普通的freemarket文件那么简单。
分享到:
- 2007-01-22 16:37
- 浏览 3798
- 评论(6)
- 论坛回复 / 浏览 (6 / 6889)
- 查看更多
相关推荐
7. **错误处理与调试**:Freemarket有良好的错误处理机制,可以在模板中设置调试模式,方便定位和解决问题。 8. **性能优化**:Freemarket通过缓存编译后的模板,提高了模板渲染的效率。同时,合理的设计和使用模板...
在JavaWeb开发中,生成Word文档常常用于...实践中,你可能还需要根据具体需求进行调整,比如处理异常、优化性能、提供更灵活的模板语法等。理解这些概念和技术,你就可以自如地在JavaWeb项目中实现动态Word文档生成了。
`freeMarket`提供了多种内置函数来处理不同的数据类型。 - **示例**: `${avg(3, 5)}`。该表达式计算3和5的平均值。 ### 10. 转义字符 可以使用转义字符来实现特殊效果。 - **示例**: `"It's \"quoted\""`。这里`...
FreeMarker提供了丰富的语法支持,例如`<#if>`、`<#foreach>`等,使得模板可以更加灵活地处理各种情况。 总结来说,"freemarket word"的学习资源可以帮助你理解如何在Java环境中利用FreeMarker和Apache POI创建动态...
在这个"springMVC 多视图配置(Jsp Freemarket Json)实例"中,我们将探讨如何在 SpringMVC 中设置多种视图解析器来支持 Jsp、FreeMarker 和 Json 格式的响应。 **1. 视图解析器 (View Resolver)** 在 SpringMVC ...
3. **配置** (Configuration): 配置对象负责管理模板的位置、加载方式、错误处理以及其他设置。 4. **指令** (Directives): 指令用于控制模板的行为,例如条件判断、循环等。 5. **表达式** (Expressions): ...
iText是一个开源的Java库,专门用来处理PDF文档。它可以创建、编辑和读取PDF文件。通过iText,我们可以添加文本、图像、表格、超链接等元素到PDF文档中。在本项目中,iText扮演着核心角色,帮助我们根据预设的模板...
4. **FreeMarker处理**:使用FreeMarker的`Template`类来加载模板文件,并将数据模型传递给它。FreeMarker会根据模板和数据模型生成最终的代码。 5. **Maven插件集成**:为了在Maven构建过程中执行代码生成,可以...
它的核心概念是将模板(Template)与数据模型(Data Model)相结合,以生成最终的输出。设计者专注于创建模板,程序员则负责构建数据模型,两者分离,各司其职。 在快速入门中,我们看到FreeMarker的基本工作原理是...
在本文中,我们将深入探讨如何在Eclipse集成开发环境中安装FreeMarker插件,以便更好地编辑和处理FreeMarker模板语言。FreeMarker是一个强大的、基于模板的Java库,常用于生成动态HTML或其他格式的文本,尤其在Java ...
它允许开发者将业务逻辑、数据处理和用户界面分离,从而实现更清晰的代码结构。在Spring MVC中,Controller负责接收HTTP请求并调用相应的服务层方法,Model存储数据,而View则负责渲染数据并展示给用户。 Spring ...
Freemarker是一个强大的、轻量级的模板语言,常用于Web开发中的视图层。它允许开发者将HTML模板与业务逻辑分离,使得前端和后端能够更高效地协作。通过在模板中插入变量和控制结构,Freemarker可以动态生成HTML页面...