利用freemarker、java生成html静态页面
来源:互联网 发布:谷歌看图软件下载 编辑:程序博客网 时间:2024/05/10 08:24
这几天在搞一个利用freemarker和java生成静态页面的东西,经过百度和自己的调试终于搞定,现在总结出核心代码分享。
- /**
- * 生成静态页面主方法
- *
- * @param context
- * ServletContext
- * @param data
- * 一个Map的数据结果集
- * @param templatePath
- * ftl模版路径
- * @param targetHtmlPath
- * 生成静态页面的路径
- */
- public static void crateHTML(ServletContext context,
- Map<String, Object> data, String templatePath, String targetHtmlPath) {
- // 加载模版
- freemarkerCfg.setServletContextForTemplateLoading(context, "/");
- freemarkerCfg.setEncoding(Locale.getDefault(), "UTF-8");
- String filePath = ServletActionContext.getServletContext().getRealPath(
- "/static");
- File file = new File(filePath);
- if(!file.exists() || !file.isDirectory()){
- file.mkdir();
- }
- File f = new File(file,"/all_css");
- if(!f.exists() || !f.isDirectory()){
- f.mkdir();
- }
- try {
- freemarkerCfg.setDirectoryForTemplateLoading(new File(filePath));
- // 设置包装器,并将对象包装为数据模型
- freemarkerCfg.setObjectWrapper(new DefaultObjectWrapper());
- // 获取模板,并设置编码方式,这个编码必须要与页面中的编码格式一致
- // 否则会出现乱码
- Template template = freemarkerCfg
- .getTemplate(templatePath, "UTF-8");
- template.setEncoding("UTF-8");
- // 静态页面路径
- String htmlPath = filePath + "/" + targetHtmlPath;
- 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();
- }
- }
- /**
- * 生成友情链接的静态页cuxiao.html
- *
- * @param context
- * @param data
- */
- ublic static void createIndexFriendLink(ServletContext context,
- Map<String, Object> data) {
- try {
- //cuxiao.ftl是项目中建立的ftl文件,cuxiao.html是生成的静态页面名
- return crateHTML(context, data, "/cuxiao.ftl", "cuxiao.html");
- } catch (Exception e) {
- e.printStackTrace();
- }
最后调用方法,private Map<String, Object> pList = new HashMap<String, Object>();
- List list = new ArrayList();
- pList.put("list",list);
- HttpServletRequest request = ServletActionContext.getRequest();
- pList.put("JspTaglibs", new TaglibFactory(request.getSession()
- .getServletContext()));
- this.createIndexFriendLink(
- ServletActionContext.getServletContext(), pList);
- //页面介绍map时一定要与pList中的key一致
- PS:原来写在了iteye上,现在公司只能上csdn,就搬到这里了,欢迎各位大神拍砖。
0 0
- 利用freemarker、java生成html静态页面
- Freemarker生成HTML静态页面
- 【转帖】利用Java生成静态HTML页面
- 利用Java生成静态HTML页面
- JAVA程序通过freemarker生成静态HTML页面
- 利用Freemarker生成html静态页面,也可利用模版功能生成不同格式的文件
- 利用页面输出生成HTML静态页面
- Freemarker生成静态页面
- freemarker生成静态页面
- freemarker生成静态页面
- FreeMarker生成静态页面
- FreeMarker生成静态页面
- Java生成静态HTML页面
- Java生成静态HTML页面
- Java生成静态HTML页面
- java使用freemarker生成静态html页面,基于中文API(简单版)
- 利用FreeMarker如何生成静态页面(转)
- freemarker自定义标签并生成html静态页面
- python爬虫学习(一)
- Java基础部分笔记
- 谷歌招聘新员工五大标准:文凭一边玩去
- View Controller的生命周期
- 解决live CD方式启动Ubuntu系统不能启动openssh-server服务
- 利用freemarker、java生成html静态页面
- 编译型语言和解释型语言的区别和优劣
- 韩信点兵问题
- 狐狸
- C和C++动态内存分配和释放的区别
- 斜率优化专题4——bzoj 1911: [Apio2010] 特别行动队 题解
- ios的View的AutoresizingMask属性
- 理解傅立叶变换的本质——背景篇
- vim 颜色主题