您的位置:首页 > 其它

freemarker简单使用示例

2015-06-12 10:47 183 查看
使用freemarker.jar

使用示例

package com.test;

import java.io.File;
import java.io.IOException;
import java.io.StringWriter;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;

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

public class FreemarkerHandler {

protected static Configuration freemarkerConfig;
private static FreemarkerHandler instance = new FreemarkerHandler();

public static void main(String[] args){
Map<String, Object> root = new HashMap<String, Object>();
root.put("user", "joe");
root.put("sex", "男");
FreemarkerHandler.getInstance("/where/your/store/templates").docXmlBulider(root, "text.ftl");
}

/**
* @param rootPath 加载数据源的目录
*/
public static FreemarkerHandler getInstance(String rootPath) {
/**
* 创建和调整配置
* 在整个应用的生命周期中,此操作应该只做一次
*/
if (null == freemarkerConfig) {
freemarkerConfig = new Configuration();
try {
freemarkerConfig.setDirectoryForTemplateLoading(new File(rootPath));
freemarkerConfig.setObjectWrapper(new DefaultObjectWrapper());
freemarkerConfig.setEncoding(Locale.CHINA, "utf-8");
freemarkerConfig.setNumberFormat("#");
} catch (IOException e) {
e.printStackTrace();
}
}
return instance;
}
/**
*
* @param entity 数据存放对象
* @param ftlName 模板(路径+名称)
* @return
*/
public String docXmlBulider(Object entity, String ftlName) {
StringWriter writer = new StringWriter();
String content = "";
try {
/**
* 获取或创建模板
* 在整个应用的生命周期中,这个工作可以执行多次
*/
Template temp = freemarkerConfig.getTemplate(ftlName);
// 模板和数据类型合并
temp.process(entity, writer);
content = writer.toString();
} catch (Exception e) {
e.printStackTrace();
}
return content;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: