码迷,mamicode.com
首页 > 其他好文 > 详细

Freemarker01

时间:2017-08-29 23:03:15      阅读:251      评论:0      收藏:0      [点我收藏+]

标签:img   splay   log   不可用   sch   更新   关闭   ide   except   

 

1 如何使用freemarker

  1.1 导包

    freemarker-2.3.19.jar

  1.2 创建一个ftl文件作为模板

  1.3 创建一个方法来将ftl模板和数据组合起来

 

2 利用maven实现freemarker编程

  2.1 创建一个maven项目

    技术分享

  2.2 利用maven导入freemarker包

    技术分享

技术分享
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>cn.xiangxu</groupId>
  <artifactId>warriorTest</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>
  <dependencies>
      <dependency>
          <groupId>org.freemarker</groupId>
          <artifactId>freemarker</artifactId>
          <version>2.3.19</version>
      </dependency>
  </dependencies>
</project>
pom.xml

  2.3 创建用于组装freemarker模板和数据的方法

    2.3.1 创建freemarker配置实例并指定ftl模板文件的位置

    2.3.2 创建数据模型并向数据模型中添加数据

    2.3.3 利用freemarker对象加载模板文件

    2.3.4 显示生成的数据

    2.3.5 关闭输出流

public static void test01() throws Exception {
        Configuration cfg = new Configuration();  // 创建freemarker配置实例
        cfg.setDirectoryForTemplateLoading(new File("template")); // 指定配置文件的路径   // 包含ftl文件的文件夹在项目根目录下时的写法(使用相对路径)
//        cfg.setDirectoryForTemplateLoading(new File("D://template")); // 使用绝对路径
//        cfg.setClassForTemplateLoading(this.getClass(), "/template");//在resource目录下的写法类路径(这种方法在静态方法中不可用)
//        1、创建freemarker配置实例并指定ftl模板文件的位置
        
        Map root = new HashMap(); // 创建数据模型
        root.put("name", "Zeus"); // 向数据模型中添加数据
//        2、创建数据模型并向数据模型中添加数据
        
        Template tl = cfg.getTemplate("a.ftl");
//        3、利用freemarker对象加载模板文件
        
        Writer out = new OutputStreamWriter(System.out);// 输出控制 // 输出流到控制台(输出流到文件、输出流到socket怎么处理)
        tl.process(root, out); // 将模板和数据组合的结果输出指定的输出位置
//        4、显示生成的数据
        
        out.flush(); 
        out.close();
//        5、关闭输出流
    }

  2.4 编写ftl模板文件

Hello ${name}
Welcom to the city of dazu

  2.5 在main方法中调用

package cn.xiangxu.freemarker;

import java.io.File;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.util.HashMap;
import java.util.Map;

import freemarker.template.Configuration;
import freemarker.template.Template;

public class TestFreemarker {
    
    public static void main(String[] args) throws Exception {
        test01();
    }
    
    public static void test01() throws Exception {
        Configuration cfg = new Configuration();  // 创建freemarker配置实例
        cfg.setDirectoryForTemplateLoading(new File("template")); // 指定配置文件的路径   // 包含ftl文件的文件夹在项目根目录下时的写法(使用相对路径)
//        cfg.setDirectoryForTemplateLoading(new File("D://template")); // 使用绝对路径
//        cfg.setClassForTemplateLoading(this.getClass(), "/template");//在resource目录下的写法类路径(这种方法在静态方法中不可用)
//        1、创建freemarker配置实例并指定ftl模板文件的位置
        
        Map root = new HashMap(); // 创建数据模型
        root.put("name", "Zeus"); // 向数据模型中添加数据
//        2、创建数据模型并向数据模型中添加数据
        
        Template tl = cfg.getTemplate("a.ftl");
//        3、利用freemarker对象加载模板文件
        
        Writer out = new OutputStreamWriter(System.out);// 输出控制 // 输出流到控制台(输出流到文件、输出流到socket怎么处理)
        tl.process(root, out); // 将模板和数据组合的结果输出指定的输出位置
//        4、显示生成的数据
        
        out.flush(); 
        out.close();
//        5、关闭输出流
    }
}

  2.6 控制台效果

    技术分享

  2.7 项目文件目录

    技术分享

  2.8 待优化点

    freemarker的相关指令语法详解

    怎么讲组合后的内容存储到一个文件中

    利用freemarker实现sql语句的动态拼接

    待更新......

    2017年8月29日22:08:54

 

Freemarker01

标签:img   splay   log   不可用   sch   更新   关闭   ide   except   

原文地址:http://www.cnblogs.com/NeverCtrl-C/p/7450532.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!