使用freemarker生成文件

转载 2012年03月21日 23:29:12

 

import freemarker.template.Configuration;
import freemarker.template.TemplateException;

public class Generator {

    private static Configuration cfg = null;

    static {
        if (null == cfg) {
            cfg = new Configuration();
            try {
                cfg.setDirectoryForTemplateLoading(new File(Generator.class
                    .getResource("/").getPath()
                    + "template"));
                cfg.setDefaultEncoding("MS932");
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

    }


    public static void main(String args[]) {
        try {
            Map<String, List<{xxx}Bean>> infoMap = 初期化;

            if (null != infoMap) {
                Entry<String, List<{xxx}Bean>> tblInfo = null;

                for (Iterator<Entry<String, List<{xxx}Bean>>> i = infoMap
                    .entrySet().iterator(); i.hasNext();) {
                    tblInfo = i.next();

                  {xxx}Generator.genarator{xxx}(cfg, tblInfo);

                }

            } else {
                System.out.println("テーブルが存在しません、配置ファイルを直してください");
            }
        } catch (IOException e) {
            // TODO 自動生成された catch ブロック
            e.printStackTrace();
        } catch (TemplateException e) {
            // TODO 自動生成された catch ブロック
            e.printStackTrace();
        } catch (SQLException e) {
            // TODO 自動生成された catch ブロック
            e.printStackTrace();
        }
    }

 

public class {xxx}Generator  {

    public static void genarator(Configuration cfg,
        Entry<String, List<{xxx}Bean>> tableInfo) throws IOException,
        TemplateException {
        BufferedWriter writer = null;

        try {
            String path = {出力パス}

            // パスが存在なければ、新規作成する
            FileUtil.mkdir(path);

            writer = new BufferedWriter(new OutputStreamWriter(
                new FileOutputStream(path), {Encode()}));

            Map<String, Object> rootMap = new HashMap<String, Object>();

            Template tpl = cfg.getTemplate("{xxxx}.tpl");
            tpl.setEncoding("UTF-8");

            tpl.process(rootMap, writer);
        } finally {
            if (null != writer) {
                writer.flush();
                writer.close();
            }
        }

 

使用freemarker 批量生成静态html

freemarker 是用来生成 静态的文件,原理就是 将其中的 某个设定好的字符替换成你先要的字符. 使用: 1 使用maven 配置jar包 org.freemarker...
  • u012930316
  • u012930316
  • 2017年01月20日 10:52
  • 509

关于Freemarker生成静态html文件及中文乱码的问题

先看生成静态html文件: FreeMarker允许Java servlet保持图形设计同应用程序逻辑的分离,这是通过在模板中密封HTML完成的。模板用servlet提供的数据动态地生成 HTML。模...
  • it_man
  • it_man
  • 2009年01月17日 11:38
  • 20360

freemarker生成HTML页面时,遇到乱码的解决办法

一些开发中遇到的问题解决方法,分享一下
  • kuanghaohua
  • kuanghaohua
  • 2016年03月15日 21:41
  • 1310

freemarker 模版生成文件

网上找了点资料,自动生成html文件,下载jar包,创建共通方法,分装数据。调用生成。 import java.io.BufferedWriter; import java.io.FileOut...
  • fax5201314
  • fax5201314
  • 2013年06月25日 16:28
  • 8319

我的第一个FreeMarker模板生成java代码的例子

第一步.新建一个模板文件以.ftl结尾。IDAO.ftl package com.media.dao;import java.util.List;import com.media.bean.${mod...
  • zhanghb2009
  • zhanghb2009
  • 2009年10月27日 09:08
  • 8274

Java Web项目中利用FreeMarker模板生成的word文档,其它格式文档同理,如pdf,txt,java,xml等等

利用FreeMarker模板生成的word文档,其它格式文档同理,如pdf,txt,java,xml等等 需要向项目中加入freemarker的JAR文件,可以通过下面的链接获得Freema...
  • qq_35624642
  • qq_35624642
  • 2016年08月15日 12:09
  • 1285

利用Freemarker自动生成JavaBean文件

序: 特点:基本上能够满足简单JavaBean的生成,可以通过配置文件的更改,灵活自动生成对应的bean。 缺点: 1.这里只是作为一个简单的例子,在实际应用当中仍需要更改具体的代码,以应对不同...
  • techbirds_bao
  • techbirds_bao
  • 2012年12月13日 16:05
  • 4505

freemarker生成excel、word、html、xml实例教程

对于导出excel我一直以为用poi、jxt的实现就够了,直到接触了freemarker以后,我才发现我错了,原来还有一种实现比前两者都更简单、便捷。 今天研究了一天的freemarker,一口气写了...
  • u010722643
  • u010722643
  • 2014年12月04日 22:44
  • 8493

实现Freemarker生成word文档,内容可二次写入

1. 需求场景最近项目有需要做一个导出word文档的功能,但由于数据量的问题,数据不能从后台一次性获取到,需要多次查询获取。2. 技术选型生成word文档涉及各种样式,使用freemarker模板来实...
  • zhaoliangbao2778
  • zhaoliangbao2778
  • 2017年01月10日 17:30
  • 664

freemarker 模板生成 文件

最近公司比较忙,好久没写文章了,今天来一篇。 要生成的目标java文件 package com.cs.qdog.swift.objects; public class F32B { ...
  • u013378306
  • u013378306
  • 2016年12月23日 09:11
  • 838
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用freemarker生成文件
举报原因:
原因补充:

(最多只允许输入30个字)