자바 문자열 정의 변 수 를 Freemarker 로 대체 합 니 다.

1196 단어 자바
import freemarker.cache.StringTemplateLoader;
import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;

import java.io.IOException;
import java.io.StringWriter;

public static String freemarkerProcess(Map input, String templateStr) {
	StringTemplateLoader stringLoader = new StringTemplateLoader();
	String template = "content";
	stringLoader.putTemplate(template, templateStr);
	Configuration cfg = new Configuration();
	cfg.setTemplateLoader(stringLoader);
	try {
		Template templateCon = cfg.getTemplate(template);
		StringWriter writer = new StringWriter();
		templateCon.process(input, writer);
		return writer.toString();
	} catch (IOException e) {
		e.printStackTrace();
	} catch (TemplateException e) {
		e.printStackTrace();
	}
	return null;
}

// test
public static void main(String[] args) {
	String template = "  ${  !'  '},   ${date?string('yyyy-MM-dd')}"; //    freemarker  
	Map m = new HashMap();
	m.put("  ", "   ");
	m.put("date", new Date());
	System.out.println(freemarkerProcess(m, template)); //"     ,   2013-09-11"
}

좋은 웹페이지 즐겨찾기