package com.yuelun.wochengz.util;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.util.Locale;
import java.util.Map;
import javax.servlet.http.HttpServlet;
import org.apache.struts.action.ActionServlet;
import freemarker.template.Configuration;
import freemarker.template.Template;
@SuppressWarnings("unchecked")
public class FreeMarkerFactory extends HttpServlet{
/**
*
* @param ftl 模版名称
* @param htmlName 生成的THML名称
* @param path html存放路径
* @param fileName 模版存放文件夹
* @param root 数据模型
* @return
*/
public static boolean init(String ftl,String htmlName,String path,String fileName,Map root,ActionServlet servlet){
boolean flag = true;
Configuration config = new Configuration();
//加载模版
config.setServletContextForTemplateLoading(servlet.getServletContext(), "/"+fileName);
//设置编码
config.setEncoding(Locale.getDefault(), "GBK");
try {
//指定模版
Template template = config.getTemplate(ftl);
template.setEncoding("GBK");
File io = new File(path);
if(!io.exists()){
io.mkdirs();
}
//输出THML
Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(new File(path,htmlName)),"GBK"));
//解析文件并输出
template.process(root, out);
} catch (Exception e) {
flag = false;
e.printStackTrace();
}
return flag;
}
}
Freemarker 生成HTML工厂例子
最新推荐文章于 2025-12-05 17:02:52 发布
本文介绍了一个使用Freemarker实现的HTML模版生成工具。该工具通过加载指定的模版文件,结合传入的数据模型,生成HTML文件。具体实现了模版加载、编码设置及输出文件等功能。
1020

被折叠的 条评论
为什么被折叠?



