黑马程序员技术交流社区

标题: 【广州校区】 + 【原创】 FreeMarker入门案例 [打印本页]

作者: leeao    时间: 2018-12-4 13:15
标题: 【广州校区】 + 【原创】 FreeMarker入门案例
FreeMarker 是一款模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML 网页、电子邮件、配置文件、源代码等)的通用工具。 它不是面向最终用户的,而是一个 Java 类库,是一款程序员可以嵌入他们所开发产品的组件。
使用步骤:

      第一步:创建一个 Configuration 对象,直接 new 一个对象。构造方法的参数就是  freemarker 的版本号
第二步:设置模板文件所在的路径
第三步:设置模板文件使用的字符集;一般为 utf-8
第四步:获取模板
第五步:创建一个模板使用的数据集,可以是 pojo 也可以是 map;一般是 Map 第六步:创建一个 Writer 对象,一般创建 FileWriter对象,指定生成的文件名第七步:调用模板对象的 process 方法输出文件
第八步:关闭流

代码案例:

创建itcast-freemarker\src\test\java\cn\itcast\freemarker\FreeMarkerTest.java
[Java] 纯文本查看 复制代码
public class FreeMarkerTest {
  @Test
  public void test() throws Exception {
    // 创建配置对象
    Configuration configuration = new Configuration(Configuration.getVersion());
    // 设置默认生成文件编码
    configuration.setDefaultEncoding("utf-8");
    // 设置模板路径
    configuration.setClassForTemplateLoading(FreemarkerTest.class, "/ftl");
    // 获取模板
    Template template = configuration.getTemplate("test.ftl"); // 加载数据
    Map<String, Object> dataModel = new HashMap<>();
    dataModel.put("name", "传智播客");
    dataModel.put("message", "欢迎使用 Freemarker。");
    // 创建输出对象
    FileWriter fileWriter = new FileWriter("D:\\itcast\\test\\test.html");
    // 渲染模板和数据
    template.process(dataModel, fileWriter);
    // 关闭输出
    fileWriter.close();
  }
}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2