`

Freemarker 之 Java静态化 实例一

阅读更多

Freemarker是一种强大的web端模板技术,在当前Web开发中,SEO和客户端浏览速度尤为重要,其中将网页静态化是一个很好的解决方案。下面介绍Java中web开发结合Freemarker来实现静态化.
主要分为三步
1 准备好模板文件,如Test.ftl
<html>
<head>
<title>${title}</title>
<style type="text/css" link="${rccontextPath}/core.css">
</head>
<body>
<table>
<tr>
<td>商品编号</td>
<td>商品名称</td>
<td>商品说明</td>
</tr>
<#if goodsList?exist>
<#list goodsList as goods>
<tr>
<td>${goods.ggCode}</td>
<td>${goods.ggName}</td>
<td>${goods.ggDesc}</td>
</tr>
</#list>
</#if>
</table>
</body>
</html>

2 在dao层封装静态化的方法
public void crateHTML(ServletContext context,Map<String,Object> data,String templatePath,String targetHtmlPath){
     Configuration freemarkerCfg = new Configuration();
     //加载模版文件的路径
     freemarkerCfg.setServletContextForTemplateLoading(context, "/WEB-INF/view/");
     freemarkerCfg.setEncoding(Locale.getDefault(), "UTF-8");
     try {
      //指定模版路径
      Template template = freemarkerCfg.getTemplate(templatePath,"UTF-8");
      template.setEncoding("UTF-8");
      //静态页面路径
      String htmlPath = context.getRealPath("/WEB-INF/view/")+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) {
      log.error("生成静态网页出错");
      e.printStackTrace();
     }
  }

3 在service层调用静态化dao

try{ 
      //准备数据
      List<Goods> goodsList=goodsService.queryAllGoods();
      HashMap<String,Object> data = new HashMap<String,Object>();
         data.put("goodsList",goodsList);//此处装载的key的名字要与模板文件中接收数据的名字保持一致
         data.put("rccontextPath",servletContext.getContextPath());//生成图片、CSS、JS的绝对路径
      //调用静态页面方法
     staticWebDao.crateHTML(context,data,"Test.ftl","/Test.html");     }catch(Exception e){
      e.printStackTrace();
     }*/

需要注意的几点
1 检查生成后的静态网页中图片、CSS及JS等的引用路径是否正确
2 放入Map中的数据的key必须与模版文件中接收数据的名字保持一致
3 设置的编码方式与你工程的编码方式保持一致
4 注意输出流的关闭
5 生成的静态网页文件名自定义
分享到:
评论

相关推荐

    Freemarker网站静态化的实现实例源码(eclipse)

    本实例源码是关于如何利用Freemarker进行网站静态化的具体实践,主要涉及到以下几个核心知识点: 1. **Freemarker模板语言**:Freemarker使用简单的文本模板语言,将数据模型与HTML模板结合,生成最终的HTML页面。...

    java Freemarker页面静态化实例详解

    总结起来,Java中的Freemarker页面静态化实例详解主要涉及Freemarker的基本用法、数据格式化以及处理空值的策略。通过对这些知识点的掌握,开发者可以有效地利用Freemarker进行静态页面生成,从而提高网站的响应速度...

    freemarker权威版 网站静态化

    Freemarker是一个强大的模板引擎,常用于Web应用中的视图层,实现动态内容与静态页面的分离。在网站静态化的过程中,Freemarker扮演着关键角色。通过将动态数据注入到预定义的模板中,它能够生成HTML或其他静态格式...

    java生成静态页面——Freemarker实例教程.docx

    ### Java生成静态页面——Freemarker实例教程 #### 一、Freemarker简介 Freemarker是一款基于模板的通用工具,它可以嵌入到各种应用程序中,帮助开发者将动态数据渲染成HTML、XML或其他文本格式的文件。对于提高...

    Java html转word 使用FreeMarker

    在代码中,使用FreeMarker API加载模板文件,创建`Template`对象,然后用数据模型实例化`Map`对象。通过`Configuration`对象的`process`方法,将模板与数据模型合并,生成Word文档的字节流。最后,你可以选择将这个...

    freeMarker简单实例

    下面将深入探讨FreeMarker的基本概念、工作原理以及如何创建一个简单的实例。 1. **基本概念** - **模板(Template)**: 模板是FreeMarker的核心,它是HTML或XML等静态文件,其中包含特定的FreeMarker指令和变量,...

    java使用freemarker模板技术导出word

    Java 使用 FreeMarker 模板技术导出 Word 是一种常见的数据动态生成文档的方法,它结合了 Java 的编程能力和 FreeMarker 模板引擎的强大功能,能够帮助开发者高效地生成结构化的 Word 文档。FreeMarker 是一个开源的...

    java freemarker 导出 word

    然后,实例化`DocumentModel`对象并填充数据: ```java DocumentModel model = new DocumentModel(); model.setTitle("示例标题"); model.setContent("这是示例内容。"); ``` 接下来,创建一个`Configuration`对象...

    JFinal+freemarker+maven demo实例

    总结来说,"JFinal+freemarker+maven demo实例"是一个典型的Java Web项目架构,展示了如何利用这三个工具进行高效开发。JFinal提供了快速开发的基础,FreeMarker实现了动态视图,而Maven则保证了项目的构建和管理。...

    教你如何用FreeMarker生成静态页面.doc

    以下是一个简单的Java代码示例,展示了如何使用FreeMarker生成静态页面: 1. 导入所需的FreeMarker库和IO相关的类。 2. 创建一个名为`FreeMarkerUtil`的公共类。 3. 定义一个静态方法`analysisTemplate`,接收模板...

    Java用freemarker导出word例子

    例如,如果我们要生成一个包含员工信息的Word文档,可以创建一个`Employee`类,并实例化一个`List&lt;Employee&gt;`对象。 5. **步骤三:配置FreeMarker** 配置FreeMarker,设置模板文件的路径,以及数据模型。 6. **...

    freemarker实例下载

    Freemarker是一个强大的Java模板引擎,它允许程序员将业务逻辑与视图呈现分离,从而实现MVC(模型-视图-控制器)架构的关键部分。在Web开发中,Freemarker常用于生成HTML页面,减轻了开发者手动编写重复HTML代码的...

    freemarker实例,真实

    这个实例是一个不依赖数据库、使用相对路径生成文件的基础示例,非常适合初学者了解和学习Freemarker的基本用法。 1. **Freemarker简介** Freemarker是一个开源的模板语言,它与编程语言解耦,允许开发者将业务...

    freemarker web工程实例

    在"freemarker web工程实例"中,我们假设已经搭建了一个基本的Java Web环境,包括Tomcat服务器和Maven或Gradle构建工具。接下来,我们将介绍集成Freemarker的关键步骤: 1. **添加依赖**:在项目构建文件(如pom....

    Freemarker开发文档以及技术手册资源

    Freemarker是一个强大的模板引擎,常用于Web应用中的视图层开发,特别是在Java环境中,它与SpringMVC等框架结合广泛。本资源包包含了两部分关键资料:开发文档和页面静态化技术手册,旨在帮助开发者深入理解和高效...

    FreeMarker应用实例和PPT

    - **模板语言**:FreeMarker使用简单的文本文件作为模板,其中包含动态和静态内容的混合,动态内容由Java对象的数据驱动。 - **变量和表达式**:在模板中,${...}和#{...}用于表示变量和表达式,它们从后台Java...

    freemarker(语法+实例)

    Freemarker是一个强大的Java模板引擎,它允许开发者将业务逻辑与视图层分离,使得HTML、XML等静态页面可以通过模板动态生成。以下是关于Freemarker语法和实例的详细讲解: 1. **概念** - **Sequence**:序列,类似...

Global site tag (gtag.js) - Google Analytics