ITKeyword,专注技术干货聚合推荐

注册 | 登录

freemarker 生成静态面

weiqingli190949353 分享于 2009-12-17

推荐:关于Freemarker生成静态文件的问题

 首先感谢JScud提供的好文章。《 使用FreeMarker生成Html静态文件(实例)》       在我们的项目中也用到了Freemarker生成静态文件。不过这里我要说的是编码的问题

2019阿里云全部产品优惠券(新购或升级都可以使用,强烈推荐)
领取地址https://promotion.aliyun.com/ntms/yunparter/invite.html

package com.shenzhan.pro.util;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import freemarker.template.Configuration;
import freemarker.template.DefaultObjectWrapper;
import freemarker.template.Template;
import freemarker.template.TemplateException;


/**
 * 模板工具类
 *
 * @author Administrator
 *
 */
public class GetStaticHTMLBean {


 private static GetStaticHTMLBean templateManager = null;
 private  Configuration configuration = null;

推荐:采用freemarker静态化页面以及freemarker视图展现简介

以freemarker为展现方式或以freemarker ftl模板为框架生成静态化页面: freemarker库:freemarker-2.3.19.jar 涉及4种应用方式 1,页面静态化之Servlet中使用fre

 public GetStaticHTMLBean() {
  // 设置freemarker的参数
  configuration = new Configuration();
  // setDirectoryForTemplateLoading("/template");
  configuration.setObjectWrapper(new DefaultObjectWrapper());
  configuration.setDefaultEncoding("UTF-8");
 }

 /**
  * 取得模板处理的实例
  *
  * @return templateManager 模板处理实例
  */
 public synchronized static GetStaticHTMLBean getInstance() {
  if (templateManager == null) {
   templateManager = new GetStaticHTMLBean();
  }
  return templateManager;
 }


 /**
  * @param templateFolder
  *            模板相对于classpath的路径
  * @param templateFileName
  *            模版名称
  * @param htmlFilePath
  *            要生成的静态文件的路径
  * @param objectMap
  *            模板中对象集合
  * @return boolean 是否生成成功
  */
 public boolean buildFile(String templateFolder, String templateFileName,
   String htmlFilePath, Map objectMap) {
  Writer out = null;
  try {
   // configuration.setClassForTemplateLoading(this.getClass(),
   // templateFolder);
   configuration.setDirectoryForTemplateLoading(new File(
     templateFolder));
   Template template = configuration.getTemplate(templateFileName);
   template.setEncoding("UTF-8");
   // 创建生成文件目录
   File htmlFile = new File(htmlFilePath);
   out = new BufferedWriter(new OutputStreamWriter(
     new FileOutputStream(htmlFile), "UTF-8"));
   template.process(objectMap, out);
   out.flush();
   String time=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(new Date());
   System.out.println("*************************************静态页生成成功!  "+time);
   return true;
  } catch (TemplateException ex) {
   return false;
  } catch (IOException e) {
   return false;
  } finally {
   try {
    out.close();
   } catch (IOException e) {
    return false;
   }
  }
 }
 
 public static void main(String args[]){
  Map root = new HashMap();
  root.put("username", "七里dd");
  String time=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(new Date());
  root.put("time", time);
  System.out.println(time);
  GetStaticHTMLBean bean=new GetStaticHTMLBean();
  
  String templateFolder="D://f";
  String templateFileName="qili.ftl";
  String htmlFilePath="D://f//index.html";
  bean.buildFile(templateFolder, templateFileName, htmlFilePath, root);
 }

 
}

推荐:使用FreeMarker生成Html静态文件(实例)

以下是我在生成新闻的静态文件时用到的代码.仅供参考.请根据实际情况修改. 模板:    <html><head><title>查看文章: ${newsitem.title} </title></head>

package com.shenzhan.pro.util; import java.io.BufferedWriter; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStreamWriter; i

相关阅读排行


用户评论

游客

相关内容推荐

最新文章

×

×

请激活账号

为了能正常使用评论、编辑功能及以后陆续为用户提供的其他产品,请激活账号。

您的注册邮箱: 修改

重新发送激活邮件 进入我的邮箱

如果您没有收到激活邮件,请注意检查垃圾箱。