package
com.naxsu.freemarker;
import
java.io.File;
import
java.io.FileWriter;
import
java.io.IOException;
import
java.io.PrintWriter;
import
java.util.Map;
import
freemarker.template.Configuration;
import
freemarker.template.Template;
import
freemarker.template.TemplateException;
public
class
FreemarkerUtil {
/**
* 获取模板
* @param name
* @return
*/
public
Template getTemplate(String name) {
try
{
Configuration cfg =
new
Configuration();
cfg.setClassForTemplateLoading(
this
.getClass(),
"/ftl"
);
Template temp = cfg.getTemplate(name);
return
temp;
}
catch
(IOException e) {
e.printStackTrace();
}
return
null
;
}
/**
* 输出到控制台
* @param name 模板文件名
* @param root
*/
public
void
print(String name,Map<String,Object> root) {
try
{
Template temp =
this
.getTemplate(name);
temp.process(root,
new
PrintWriter(System.out));
}
catch
(TemplateException e) {
e.printStackTrace();
}
catch
(IOException e) {
e.printStackTrace();
}
}
/**
* 输出到文件
* @param name
* @param root
* @param outFile
*/
public
void
fprint(String name,Map<String,
Object> root,String outFile) {
FileWriter out =
null
;
try
{
out =
new
FileWriter(
new
File(
"E:\\freemarker\\ftl\\"
+outFile));
Template temp =
this
.getTemplate(name);
temp.process(root, out);
}
catch
(IOException e) {
e.printStackTrace();
}
catch
(TemplateException e) {
e.printStackTrace();
}
finally
{
try
{
if
(out!=
null
) out.close();
}
catch
(IOException e) {
e.printStackTrace();
}
}
}
}