Apache FreeMarker 使用教程

Apache FreeMarker 使用教程

freemarkerApache Freemarker项目地址:https://gitcode.com/gh_mirrors/freem/freemarker

项目介绍

Apache FreeMarker 是一个基于 Java 的模板引擎,最初专注于使用 MVC 软件架构生成动态网页。它现在可以根据模板和变化的数据生成文本。FreeMarker 不依赖于 servlets、HTTP 或 HTML,常用于生成源代码、配置文件或电子邮件。

项目快速启动

环境准备

  1. 确保你已经安装了 Java 开发环境(JDK)。
  2. 下载并安装一个 Java IDE,如 IntelliJ IDEA 或 Eclipse。

快速开始

  1. 克隆项目仓库:

    git clone https://github.com/apache/freemarker.git
    
  2. 在 IDE 中打开项目。

  3. 创建一个新的 Java 类,例如 HelloWorld.java,并添加以下代码:

    import freemarker.template.Configuration;
    import freemarker.template.Template;
    import freemarker.template.TemplateException;
    
    import java.io.StringWriter;
    import java.util.HashMap;
    import java.util.Map;
    
    public class HelloWorld {
        public static void main(String[] args) throws Exception {
            // 创建 FreeMarker 配置实例
            Configuration cfg = new Configuration(Configuration.VERSION_2_3_31);
            cfg.setClassForTemplateLoading(HelloWorld.class, "/");
    
            // 获取模板
            Template template = cfg.getTemplate("hello.ftl");
    
            // 创建数据模型
            Map<String, Object> data = new HashMap<>();
            data.put("message", "Hello, FreeMarker!");
    
            // 合并模板和数据模型
            StringWriter out = new StringWriter();
            template.process(data, out);
    
            // 输出结果
            System.out.println(out.toString());
        }
    }
    
  4. 在同一目录下创建一个名为 hello.ftl 的模板文件,内容如下:

    <html>
    <body>
        <h1>${message}</h1>
    </body>
    </html>
    
  5. 运行 HelloWorld 类,你将看到控制台输出包含 "Hello, FreeMarker!" 的 HTML 内容。

应用案例和最佳实践

应用案例

FreeMarker 广泛应用于以下场景:

  • 动态网页生成:使用 FreeMarker 生成动态内容,如新闻网站的文章页面。
  • 电子邮件模板:创建可重用的电子邮件模板,动态填充内容。
  • 配置文件生成:生成复杂的配置文件,如服务器配置或应用程序配置。

最佳实践

  • 模板分离:将业务逻辑和视图逻辑分离,确保模板文件简洁易读。
  • 缓存模板:在生产环境中缓存模板以提高性能。
  • 错误处理:在模板中使用适当的错误处理机制,如 <#attempt><#recover> 指令。

典型生态项目

FreeMarker 通常与其他 Apache 项目结合使用,形成强大的生态系统:

  • Apache Tomcat:用于部署 FreeMarker 生成的 Web 应用。
  • Apache Maven:用于管理项目依赖和构建过程。
  • Apache Commons:提供各种实用工具库,增强 FreeMarker 的功能。

通过这些项目的结合使用,可以构建出高效、可扩展的 Java 应用。

freemarkerApache Freemarker项目地址:https://gitcode.com/gh_mirrors/freem/freemarker

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Freemarker 是一种基于模板的通用文本生成器,可以用于生成各种文档类型,包括 Excel。下面是一个简单的教程,介绍如何使用 Freemarker 生成 Excel 文件。 1. 准备数据 首先,需要准备要填充到 Excel 文件中的数据。可以将数据存储在一个 Java 对象中,然后将该对象传递给 Freemarker 模板。 例如,假设我们要生成一个包含以下信息的 Excel 文件: | 姓名 | 年龄 | 性别 | | ---- | ---- | ---- | | 张三 | 20 | 男 | | 李四 | 25 | 女 | 我们可以定义一个 Java 类来表示这些数据: ``` public class Person { private String name; private int age; private String gender; // 省略 getter 和 setter 方法 } ``` 然后创建一个包含 Person 对象的 List: ``` List<Person> persons = new ArrayList<>(); Person person1 = new Person("张三", 20, "男"); Person person2 = new Person("李四", 25, "女"); persons.add(person1); persons.add(person2); ``` 2. 创建 Freemarker 模板 接下来,需要创建一个 Freemarker 模板,用于定义 Excel 文件的格式和样式。 例如,我们可以创建一个名为 `template.ftl` 的模板文件,其中包含以下内容: ``` <?xml version="1.0"?> <workbook> <worksheet> <row> <cell>姓名</cell> <cell>年龄</cell> <cell>性别</cell> </row> <#list persons as person> <row> <cell>${person.name}</cell> <cell>${person.age}</cell> <cell>${person.gender}</cell> </row> </#list> </worksheet> </workbook> ``` 此模板将生成一个包含表头和数据行的 Excel 文件。 3. 使用 Freemarker 生成 Excel 文件 现在,可以使用 Freemarker 解析模板并生成 Excel 文件。下面是一个示例代码: ``` Configuration cfg = new Configuration(Configuration.VERSION_2_3_30); cfg.setClassForTemplateLoading(getClass(), "/"); Template template = cfg.getTemplate("template.ftl"); Map<String, Object> data = new HashMap<>(); data.put("persons", persons); File outputFile = new File("output.xlsx"); try (OutputStream outputStream = new FileOutputStream(outputFile)) { XlsxExporter exporter = new XlsxExporter(); exporter.setConfiguration(cfg); exporter.export(template, data, outputStream); } ``` 此代码创建了一个 Freemarker 配置对象,并将模板文件加载到该对象中。然后,将数据存储在一个 Map 对象中,并将其传递给模板。最后,使用 XlsxExporter 类将模板解析为 Excel 文件。 需要注意的是,上述示例代码需要引入以下依赖: ``` <dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>2.3.30</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>4.1.2</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml-export</artifactId> <version>4.1.2</version> </dependency> ``` 以上就是使用 Freemarker 生成 Excel 文件的简单教程。希望对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

盛丽洁Cub

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值