java使用freemarker生成静态html页面,基于中文API(简单版)
前言:因为工作需要用到,所以临时才简单的学了下freemarker,发现和 JSP页面一样简单。主要是类似JSP中使用JSTL标签一样。freemarker也有属于它的标签。
freemarker也是有很多要学的,但是我学的只是足够用工作的,没那么深入,所以是比较简单的,如同“hello world”例子。
下面的程序,会基于 中文API 来说的,如果有更好的代码或实现方法,请再评论留言,一起讨论学习。
freemarker中文API地址: http://t.bdtool.net/freemarker/pgui.html
上代码,亲测可用。
FreemarkerUtil.java
package com.testExample.freemarker;
import freemarker.cache.ClassTemplateLoader;
import freemarker.cache.FileTemplateLoader;
import freemarker.cache.MultiTemplateLoader;
import freemarker.cache.TemplateLoader;
import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateExceptionHandler;
import java.io.*;
import java.util.HashMap;
import java.util.Map;
/**
* freemarker 工具类
*
*/
public class FreemarkerUtil {
//单例,为什么用单例,详情看 图1
private static final Configuration cfg; //模版配置对象
//初始化FreeMarker配置,详情看 图1
static {
//创建一个Configuration实例,建议带参,
//不带参的构造方法被标明为过期了,这里我用的是 freemarker-2.3.23.jar
//可以从 maven repository 官网下载 jar 包 ,不会下载请拉最后
cfg = new Configuration(Configuration.VERSION_2_3_23);
//设置FreeMarker的模版文件夹位置,只到文件夹,不带文件,
//如:C:/freemarker_ftl/xxx.ftl 那么只需要 C:/freemarker_ftl
try {
//三者选一,另外两个注释
one_dir1();//一个文件夹路径
one_dir2();//一个文件夹路径
more_dir();//多个文件夹路径
} catch (IOException e) {
e.printStackTrace();
}
// 设置默认编码
cfg.setDefaultEncoding("utf-8");
//错误控制器,控制异常,详情看图4
//RETHROW_HANDLER :错误信息会输出到控制台
//HTML_DEBUG_HANDLER : 错误信息会输出到你要生成的html页面,详情看图4_1
cfg.setTemplateExceptionHandler(TemplateExceptionHandler.RETHROW_HANDLER);
//cfg.setTemplateExceptionHandler(TemplateExceptionHandler.HTML_DEBUG_HANDLER);
}
//所有模板都在一个文件夹路径,详情看 图1 或