Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 391|回复: 0

[Java框架学习]用freemaker模板生成静态的html文件

[复制链接]
  • TA的每日心情
    开心
    2021-3-12 23:18
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2014-11-5 00:00:46 | 显示全部楼层 |阅读模式
    package freemarker;  public class NewsItem {
    public String title;
    public String addTime;
    public String showContent; public String getAddTime() {
      return addTime;
    }
    public void setAddTime(String addTime) {
      this.addTime = addTime;
    }
    public String getTitle() {
      return title;
    }
    public void setTitle(String title) {
      this.title = title;
    }
    public String getShowContent() {
      return showContent;
    }
    public void setShowContent(String showContent) {
      this.showContent = showContent;
    } public void loadData(){
        this.title=”测试内容”;
        this.showContent=”测试freemarker生成静态页面”;
        this.addTime=”2007-09-10″;
    }
    }  FreeMarkerTest.java package freemarker; import java.io.*;
    import java.util.HashMap;
    import java.util.Map; import org.apache.commons.logging.Log;
    import org.apache.commons.logging.LogFactory;
    import freemarker.template.*;
    public class FreeMarkerTest {  private final Log logger = LogFactory.getLog(getClass());  private Configuration freemarker_cfg = null;  static String sGeneFilePath = “d:\test\”;  static String sGeneFileName = “freemarker.htm”;  static String sTempPlateFilePath = “d:\test\”;  public static void main(String[] args) throws IOException {   // @todo 创建一个类,然后创建instance
       NewsItem aItem = new NewsItem();
       aItem.loadData();   FreeMarkerTest test = new FreeMarkerTest();   Map root = new HashMap();
       root.put(”newsitem”, aItem);   boolean bOK = test.geneHTMLFile(”template.ftl”, root, sGeneFilePath,
         sGeneFileName);  }   protected Configuration getFreeMarkerCFG() {
       if (null == freemarker_cfg) {
        // Initialize the FreeMarker configuration;
        // - Create a configuration instance
        freemarker_cfg = new Configuration();    // - FreeMarker支持多种模板装载方式,可以查看API文档,都很简单:路径,根据Servlet上下文,classpath等等    // htmlskin是放在classpath下的一个目录
        // freemarker_cfg.setClassForTemplateLoading(this.getClass(),
        // “/htmlskin”);
        // freemarker_cfg.setTemplateLoader(arg0)
        // freemarker_cfg.set
        try {
         freemarker_cfg.setDirectoryForTemplateLoading(new File(
           sTempPlateFilePath));
        } catch (Exception ex) {     ex.printStackTrace();
        }
       }   return freemarker_cfg;
      }   public boolean geneHtmlFile(String templateFileName, Map propMap,
        String htmlFilePath, String htmlFileName) {
       // @todo 从配置中取得要静态文件存放的根路径:需要改为自己的属性类调用   try {
        Template t = getFreeMarkerCFG().getTemplate(templateFileName);    // 如果根路径存在,则递归创建子目录
        creatDirs(htmlFilePath);    File afile = new File(htmlFilePath + “/” + htmlFileName);    Writer out = new BufferedWriter(new OutputStreamWriter(
          new FileOutputStream(afile)));    t.process(propMap, out);
       } catch (TemplateException e) {
        logger.error(”Error while processing FreeMarker template ”
          + templateFileName, e);
        return false;
       } catch (IOException e) {
        logger.error(”Error while generate Static Html File ”
          + htmlFileName, e);
        return false;
       }   return true;
      }  
      public static boolean creatDirs(String path) {
       File aFile = new File(path);   if (!aFile.exists()) {
        return aFile.mkdirs();
       } else {
        return true;
       }
      } }
    template.ftl  <html>
    <head> <title>查看文章: </title>
    </head> <body>
    <table width=”100%” border=”0″ cellpadding=”0″ cellspacing=”0″ bgcolor=”#FFFFFF”>
    <tr><td>
    <table width=”95%” border=”0″ align=”center” cellpadding=”2″ cellspacing=”6″ >
         <tr>
           <td height=”10″ align=”left” colspan=2 ></td>
         </tr>
         <tr>
                <td align=”left” width=”538″ >
                <strong>$ {newsitem.title}</strong> ( $ {newsitem.addTime} )
               </td>
               <td align=”right”>
                 <a href=”index.jsp” mce_href=”index.jsp”>返回</a>
                         
               </td>
         </tr>
         <tr>                     
              <td align=”left” valign=top colspan=2>
              <hr align=”left”  width=”95%” size=”1″ noshade color=”#cc0000″ >
              </td>
         </tr>
         <tr>                     
           <td colspan=2>$ {newsitem.showContent}
           </td>
         </tr>
    </table>           
                
    <br>
    </td></tr>
    </table>
    </body> </html>

       
         
         
          
          

            
          

            
          
         
       

      


    源码下载:http://file.javaxxz.com/2014/11/5/000046250.zip
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-5-17 16:05 , Processed in 0.379506 second(s), 50 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表