freemarker用法
来源:互联网 发布:系统优化的意义是 编辑:程序博客网 时间:2024/05/19 16:35
1、添加freemarker.jar
2、//利用freemarker 生成静态页面
public static void crateHTML(HttpServletRequest request, Map<String, Object> data,
String templatePath, String targetHtmlPath) {
Configuration freemarkerCfg = new Configuration();
//加载模版
ServletContext context = request.getSession().getServletContext();
freemarkerCfg.setServletContextForTemplateLoading(context, "templates"); //设置FreeMarker的模版文件位置
freemarkerCfg.setEncoding(Locale.getDefault(), "UTF-8");
/**
* 在第一级缓存中,组件都被强烈引用到特定的最大数目(引用次数最多
的组件不会被Java 虚拟机抛弃,而引用次数很少的组件则相反)。当超过最大数量时,最近
最少使用的组件将被送至二级缓存中,在那里它们被很少引用,直到达到另一个最大的数目
*/
freemarkerCfg.setCacheStorage(new freemarker.cache.MruCacheStorage(20,250));
try {
//指定模版路径
//Template template = freemarkerCfg.getTemplate(templatePath,"UTF-8");
Template template = freemarkerCfg.getTemplate(templatePath);
template.setEncoding("UTF-8");
//静态页面路径
String htmlPath = context.getRealPath("/html") + File.separator + targetHtmlPath;
System.out.println("htmlPath: " + htmlPath);
File htmlFile = new File(htmlPath);
Writer out = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream(htmlFile), "UTF-8"));
//处理模版
template.process(data, out);
out.flush();
out.close();
} catch (Exception e) {
e.printStackTrace();
}
// freemarkerCfg.clearTemplateCache(); //清除缓存
}
3、在控制层方法中写:
Map<String, Object> data = new HashMap<String, Object>();
// data.put("user","fangsidake");
for(Newsinfo n:listNewsInfo){
targetHtmlPath = n.getId().toString()+".html";
data.put("newsinfo", n);
CreateHtmlUtil.crateHTML(request, data, templatePath, targetHtmlPath);
}
- freemarker用法
- freeMarker 用法
- freemarker用法
- freemarker基本用法
- FreeMarker基本用法
- freemarker基本用法
- Freemarker标记用法
- freemarker用法记录
- freemarker list用法
- freemarker高级用法1
- freemarker用法小结
- FreeMarker常见用法教程
- FreeMarker标签基本用法
- freemarker高级用法
- freemarker(ftl)标签用法
- freemarker标签用法
- FreeMarker常见用法教程
- FreeMarker常见用法教程
- Java使用FTP上传文件被损坏的问题
- C#中结构和类的区别【转】
- C++中引用和指针的区别
- oracle函数大全
- 使用Coolite.AjaxMethods.XXX局部刷新Microsoft的GridView
- freemarker用法
- httpd常用模块编译
- learn C++ NO.1 覆盖、重载、隐藏、引用、作用域标示符、return
- httpd ssl模块编译出错
- freemarker基本用法
- 管道和过滤器
- 什么是死锁及死锁的必要条件和解决方法【转】
- NET-SNMP的一些基础知识
- SCI、Ei投稿指南