1.freemarker 模板文件路径设置
import java.io.File;
import java.io.IOException;
import java.io.StringWriter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.hike.export.Global;
import com.hike.export.exception.AppException;
import freemarker.cache.ClassTemplateLoader;
import freemarker.cache.FileTemplateLoader;
import freemarker.cache.MultiTemplateLoader;
import freemarker.cache.TemplateLoader;
import freemarker.template.Configuration;
import freemarker.template.DefaultObjectWrapper;
import freemarker.template.Template;
import freemarker.template.TemplateException;
public abstract class FtlTemplateBuilder {
private static final Logger LOG = LoggerFactory.getLogger(FtlTemplateBuilder.class);
private static final Configuration cfg = new Configuration();
private static final DefaultObjectWrapper wrapper = new DefaultObjectWrapper();
static {
try {
init();
} catch (IOException e) {
}
}
private static void init() throws IOException{
cfg.setDefaultEncoding("UTF-8");
TemplateLoader file = new FileTemplateLoader(new File(Global.BASE_DIR));
TemplateLoader clz = new ClassTemplateLoader(FtlTemplateBuilder.class,"/");
TemplateLoader[] loaders = new TemplateLoader[]{file,clz};
MultiTemplateLoader mtl = new MultiTemplateLoader(loaders);
cfg.setTemplateLoader(mtl);
cfg.setObjectWrapper(wrapper);
}
public static String processTemplateIntoString(String ftl, Object model) {
StringWriter result = null;
try {
Template template = cfg.getTemplate(ftl);
result = new StringWriter();
template.setEncoding("UTF-8");
template.process(model, result);
} catch (IOException e) {
throw new AppException(e.getMessage());
} catch (TemplateException e) {
throw new AppException(e.getMessage());
}
return result.toString();
}
}