FreeMarker Utils

public abstract class FreeMarkerUtils {
	public static final Configuration configuration = new Configuration();

	public static final String FILE_BASE_DIR = "c:/freemarker";

	public static final String CLASS_BASE_DIR = "/";

	public static final Locale LOCALE = Locale.US;

	public static final String ENCODING = "UTF-8";

	static {
		FileTemplateLoader fileTemplateLoader = null;
		try {
			fileTemplateLoader = new FileTemplateLoader(new File(FILE_BASE_DIR));
		} catch (IOException e) {
			throw new RuntimeException(e);
		}

		ClassTemplateLoader classTemplateLoader = new ClassTemplateLoader(FreeMarkerUtils.class, CLASS_BASE_DIR);

		TemplateLoader[] loaders = new TemplateLoader[] { fileTemplateLoader, classTemplateLoader };

		MultiTemplateLoader multiTemplateLoader = new MultiTemplateLoader(loaders);

		configuration.setTemplateLoader(multiTemplateLoader);
		configuration.setLocale(LOCALE);
		configuration.setEncoding(LOCALE, ENCODING);
	}

	private static Template getTemplate(String location) {
		Template template = null;
		try {
			template = configuration.getTemplate(location);
		} catch (IOException e) {
			throw new RuntimeException(e);
		}
		return template;
	}

	public static String processToString(String location, Object rootMap) {
		StringWriter writer = new StringWriter();
		process(location, rootMap, writer);
		return writer.toString();
	}

	public static void process(String location, Object rootMap, Writer writer) {
		process(getTemplate(location), rootMap, writer);
	}

	public static void process(Template template, Object rootMap, Writer writer) {
		try {
			template.process(rootMap, writer);
		} catch (TemplateException e) {
			throw new RuntimeException(e);
		} catch (IOException e) {
			throw new RuntimeException(e);
		}
	}
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值