Package com.common.test

Source Code of com.common.test.Tfreemarker

package com.common.test;

import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;

import org.junit.Test;

import freemarker.template.Configuration;
import freemarker.template.DefaultObjectWrapper;
import freemarker.template.Template;
import freemarker.template.TemplateExceptionHandler;

public class Tfreemarker {
  @Test
  public void Test() {
    try {
      // 模板路径
      String dir = Tfreemarker.class.getResource("/").getPath().split(
          "WEB-INF")[0]
          + "WEB-INF/classes/template/strong";
      System.out.println(dir);
      Configuration cfg = new Configuration();

      Properties p = new Properties();
      p.load(Thread.currentThread().getContextClassLoader()
          .getResourceAsStream("freemarker.properties"));
      cfg.setSettings(p);
      System.out.println("==" + p.getProperty("default_encoding"));

      System.out.println("++" + cfg.getSetting(""));
      // 加载freemarker模板文件

      cfg.setDirectoryForTemplateLoading(new File(dir));

      // 设置对象包装器
      cfg.setObjectWrapper(new DefaultObjectWrapper());

      // 设计异常处理器
      cfg
          .setTemplateExceptionHandler(TemplateExceptionHandler.IGNORE_HANDLER);

      // 定义并设置数据
      Map<String, String> data = new HashMap<String, String>();
      data.put("persion", "小吴");

      // 获取指定模板文件
      Template template = cfg.getTemplate("test.ftl");

      // 定义输入文件,默认生成在工程根目录
      Writer out = new OutputStreamWriter(new FileOutputStream(
          "WebRoot/freemarker/test.html"), "UTF-8");

      // 最后开始生成
      template.process(data, out);

      System.out.println("生成freemarker文件成功");

      /* 在整个应用的生命周期中,这个工作你可以执行多次 */
      /* 获取或创建模板 */
      // Template temp = cfg.getTemplate("test.xml");
      /* 创建数据模型 */
      // Map root = new HashMap();
      // root.put("user", "Big Joe");
      /* 将模板和数据模型合并 */
      // Writer out = new BufferedWriter(new
      // OutputStreamWriter(System.out));
      // temp.process(root, out);
      // out.flush();

    } catch (Exception e) {
    }

  }
}
TOP

Related Classes of com.common.test.Tfreemarker

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.