`
小网客
  • 浏览: 1241634 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

利用freemarker做html页面静态化

    博客分类:
  • J2ee
 
阅读更多

背景:

对实时性要求不高的网站需要静态化操作,那么我们基于freemarker做静态化处理

环境:

<dependency>
	<groupId>org.freemarker</groupId>
	<artifactId>freemarker</artifactId>
	<version>2.3.20</version>
</dependency>
<dependency>
	<groupId>commons-logging</groupId>
	<artifactId>commons-logging</artifactId>
	<version>1.1.1</version>
</dependency>

代码实现:

模板文件:news.ftl

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  
  <head>
    <title>
      ${article.title!}
    </title>
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <!-- <link rel="stylesheet" type="text/css" href="styles.css">  
    -->
  </head>
  
  <body>
    <h2>
      ${article.title!}
    </h2>
    <hr/>
    <pre>
      ${article.content}
    </pre>
  </body>
</html>

Java封装类Article:

public class Article  implements Serializable{
	private static final long serialVersionUID = 554206256994693476L;
	private String title;
	private String content;

	public String getTitle() {
		return title;
	}

	public void setTitle(String title) {
		this.title = title;
	}

	public String getContent() {
		return content;
	}

	public void setContent(String content) {
		this.content = content;
	}

}

注意:此类必须为public否则报freemarker.core.InvalidReferenceException

测试实现:

public static void main(String[] ar) throws Exception, TemplateException {
	Configuration configuration = new Configuration();
	configuration.setEncoding(Locale.getDefault(), "UTF-8");
	TemplateLoader templateLoader = new FileTemplateLoader(new File("d:/"));
	configuration.setTemplateLoader(templateLoader);
	Template template = configuration.getTemplate("news.ftl");
	template.setEncoding("UTF-8");
	File file = new File("d:/news.html");
	Map<String, Article> rootMap = new HashMap<String, Article>();
	Article article = new Article();
	article.setTitle("关于小网客");
	article.setContent("解决方案咨询<br>大数据处理<br>系统架构<br>企业信息化咨询<br>Email:smallnetvisitor@qq.com<br>来自北京");
	rootMap.put("article", article);
	Writer out = new OutputStreamWriter(new FileOutputStream(file), "UTF-8");

	template.process(rootMap, out);
}

 

说明:

此处采用了FileTemplateLoader,以D盘为根,写的html页面采用utf-8的编码

结果如下图:

 

 

 

  • 大小: 3.4 KB
0
0
分享到:
评论

相关推荐

    struts1.2+freemarker实现登录成功页面静态化例子

    在登录成功页面的实现中,我们利用Freemarker的特性来实现静态化。首先,创建一个名为`loginSuccess.ftl`的Freemarker模板,其中包含登录成功后要显示的信息。例如: ```html &lt;html&gt; 登录成功 ${username},...

    SpringBoot2 整合FreeMarker模板,完成页面静态化处理.docx

    【SpringBoot2 整合FreeMarker模板,完成页面静态化处理】 在Web开发中,页面静态化是一种提高网站性能和用户体验的技术。它涉及到将原本动态生成的页面转换为静态HTML文件,减少对服务器的依赖,加快页面加载速度...

    httpclient,freemarker的静态化分页

    总的来说,`httpclient`与`freemarker`在页面静态化分页中的结合使用,既保证了数据的动态获取,又实现了静态文件的高效生成,是Web开发中一种实用的优化手段。通过合理的代码组织和设计,可以构建出高效且易于维护...

    freemarker把jsp静态化简单应用

    本教程将介绍如何在Java Web项目中利用FreeMarker进行JSP页面的静态化,适合初学者入门学习。 1. **FreeMarker基本概念** FreeMarker是一个基于模板的语言,它与编程语言不同,不包含任何控制结构或函数调用。它的...

    使用FreeMarker生成Html静态文件

    标题“使用FreeMarker生成Html静态文件”暗示了我们将探讨如何利用FreeMarker将动态数据转化为静态的HTML页面。这一过程通常涉及以下几个步骤: 1. **配置FreeMarker**: 首先,我们需要在Java项目中引入FreeMarker...

    页面静态化

    在Java Web开发中,页面静态化通常涉及到将动态生成的HTML页面转化为纯HTML文件,以便用户请求时无需通过服务器执行复杂的脚本逻辑,直接由Web服务器发送静态页面,从而减少服务器负载并加快页面加载速度。...

    动态页面静态化汇总--页面静态化方案

    动态页面静态化是一种提高网站性能和搜索引擎友好度的技术手段,主要通过将原本由服务器动态生成的HTML页面转换为预先生成的静态HTML文件。这样,用户请求时,服务器无需执行数据库查询和其他复杂操作,而是直接返回...

    动态JSP页面静态化,html输出

    4. 使用第三方工具:有一些开源工具如SiteMesh、FreeMarker等可以帮助实现JSP页面静态化。这些工具通常提供了更完善的管理界面和配置选项,简化了静态化过程。 5. 混合模式:结合动态和静态页面,对于不常变化的...

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

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

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

    本篇文章将详细讲解如何利用FreeMarker来生成静态页面。 首先,我们需要理解FreeMarker的基本工作原理。在FreeMarker模板文件中,我们可以编写HTML结构,同时嵌入特定的FreeMarker语法,如`&lt;#if&gt;`、`&lt;#foreach&gt;`等...

    Struts2整合Freemarker生成静态页面

    这通常通过在Action中触发静态化逻辑,将Freemarker渲染后的HTML保存到磁盘,然后直接返回这些静态页面。 9. **错误和异常处理**:Struts2和Freemarker都有自己的错误处理机制。当模板或Action执行出错时,可以通过...

    struts2+freemarker 生成静态页面

    在本项目中,“struts2+freemarker 生成静态页面”意味着利用这两个工具将动态网页转化为静态HTML页面,以提高网站性能和用户体验。 1. **Struts2框架**:Struts2提供了全面的MVC架构支持,包括动作(Action)类、...

    java Freemarker页面静态化实例详解

    在Java开发中,页面静态化是一种常见的优化技术,它可以提高网站的访问速度和用户体验。本篇文章将深入探讨如何使用Freemarker这一强大的模板引擎进行页面静态化。Freemarker是一个独立于Web容器的Java模板引擎,...

    freemarker生成静态页面------内含使用说明

    Freemarker是一个强大的模板引擎,常用于Web应用中动态生成HTML或其他类型的静态页面。它采用声明式编程方式,使得开发者可以专注于数据模型,而不用关心如何呈现这些数据。本篇文章将深入探讨Freemarker的工作原理...

    可视化div布局 生成freemarker模板

    本话题主要探讨的是如何利用可视化div布局来生成FreeMarker模板,并结合Spring MVC 3框架进行应用。下面将详细阐述这些概念及其相关知识点。 1. **FreeMarker模板引擎**:FreeMarker是一个开源的Java模板引擎,它...

    SSH框架和FreeMarker动态网页生成静态技术

    FreeMarker模板文件通常以`.ftl`扩展名,其中包含变量和控制结构,这些变量由后台Java代码提供,模板引擎负责解析并替换这些变量,生成最终的HTML页面。 在SSH框架中集成FreeMarker,首先需要在项目中添加...

    网页静态化例程 网站静态化学习的第一步

    在本文中,我们将深入探讨如何实现一个简单的网页静态化过程,以"网页静态化例程 网站静态化学习的第一步"为例,结合开发环境MyEclipse和MySQL数据库。 首先,我们要理解静态化的基本概念。静态化是指将动态生成的...

    freemarker生成静态网页

    Freemarker是一个强大的模板...在实际项目中,还可以利用Freemarker的条件语句、循环结构、宏等高级特性,实现更复杂的逻辑和布局。总的来说,Freemarker提供了一种强大且灵活的方式,让开发者可以高效地生成静态内容。

    资源前后端分离式分布式微服务架构项目CMS页面静态化讲义+源码+视频

    通过学习FreeMarker的使用、轮播图DataUrl接口开发、GridFS文件管理以及页面预览功能的开发等内容,可以帮助开发者深入理解并掌握页面静态化的关键技术。此外,通过实际案例的学习,还能够帮助读者更好地理解和应用...

Global site tag (gtag.js) - Google Analytics