importjava.io.File;importjava.io.FileWriter;importjava.io.IOException;importjava.io.Reader;importjava.io.StringReader;importjava.io.StringWriter;importjava.io.Writer;importjava.util.Map;importcom.sea.common.util.bean.Null;importcom.sea.common.util.core.Resource;importfreemarker.template.Configuration;importfreemarker.template.Template;importfreemarker.template.Version;/*** 较通用的FreeMarkers工具类
*
*@authorChenSS 2017年10月19日
*@sinceFreeMarker Version2.3.26*/
public classFreeMarkers {private staticConfiguration config;private static final Version VERSION = new Version("2.3.23");private static final String FILE_ROOT = "tmp/";public staticConfiguration defaultConfiguration() {if (config == null) {synchronized (FreeMarkers.class) {if (config == null) {try{
config= newConfiguration(VERSION);
config.setNumberFormat("0.####");
config.setDateFormat("yyyy-MM-dd");
config.setTimeFormat("HH:mm:ss");
config.setDateTimeFormat("yyyy-MM-dd HH:mm:ss");
config.setBooleanFormat("true,false");
config.setWhitespaceStripping(true);
config.setClassicCompatible(true);
File file= newFile(Resource.getResourcePath(FILE_ROOT));
config.setDirectoryForTemplateLoading(file);
}catch(IOException e) {
e.printStackTrace();
}
}
}
}returnconfig;
}public static void strToWriter(String tmp, Object model, Writer writer) throwsException {new Template(Null.STRING, newStringReader(tmp), config).process(model, writer);
}public static void fileToWriter(String tmp, Object model, Writer writer) throwsException {
config.getTemplate(tmp).process(model, writer);
}public static String strToStr(String tmp, Object model) throwsException {
StringWriter out= newStringWriter();
strToWriter(tmp, model, out);returnout.toString();
}public static String fileToStr(String tmp, Object model) throwsException {
StringWriter out= newStringWriter();
config.getTemplate(tmp).process(model, out);returnout.toString();
}public static void fileToFile(String tmp, File file, Object model) throwsException {
FileWriter writer= newFileWriter(FileUtils.newFile(file));
fileToWriter(tmp, model, writer);
}public static void fileToFile(String tmp, String file, Object model) throwsException {
fileToFile(tmp,newFile(file), model);
}public static void readerToWrite(Reader reader, Writer out, String tmpName, Mapparams)throwsException {newTemplate(tmpName, reader, config).process(params, out);
}
}