freemarker入门

freemarker是一款java模板引擎,本质上是一个java类库,可以按照用户定义好的ftl模板文件来生成符合模板格式的动态页面,属于web应用的view表示层技术。

本文有两个小程序例子,展示了freemarker的两种不同用法:

1、使用ftl模板直接返回输出,类似于jsp

2、由ftl生成静态的html页面,这种技术适用于各种网站的后台内容管理系统。

首先看一下工程结构:

/**
 * Servlet implementation class HelloFreemarkerServlet
 */
@WebServlet("/HelloFreemarkerServlet")
public class HelloFreemarkerServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    private Configuration config = null;

    private final String TEMPLATE_URL = "/WEB-INF/templates";

    /**
     * @see HttpServlet#HttpServlet()
     */
    public HelloFreemarkerServlet() {
        super();
    }

    @SuppressWarnings("deprecation")
    public void init(){
        config = new Configuration();
        config.setServletContextForTemplateLoading(getServletContext(), TEMPLATE_URL);
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        HashMap rootMap = new HashMap();
        rootMap.put("message", "Hello world");
        rootMap.put("name", "liny");
        Template template = config.getTemplate("test.ftl");
        response.setContentType("text/html; charset=" + template.getEncoding());
        Writer out = response.getWriter();
        try {
            template.process(rootMap, out);
        } catch (TemplateException e) {
            e.printStackTrace();
        }
    }

}
public class FreemarkerTest {
    public static void main(String[] args) throws IOException, TemplateException{
        final String pagePath = "F:\\workspace\\freemarker\\WebContent\\";
        final String templatePath = "F:\\workspace\\freemarker\\WebContent\\WEB-INF\\templates";
        HashMap map = new HashMap();
        map.put("message", "你好");
        map.put("name", "大臭");
        Configuration config = new Configuration();
        config.setDirectoryForTemplateLoading(new File(templatePath));

        FileOutputStream fos = new FileOutputStream(pagePath+"test.html");
        OutputStreamWriter writer = new OutputStreamWriter(fos);

        Template template = config.getTemplate("test.ftl");
        template.process(map, writer);

        writer.flush();
        writer.close();
    }
}
<html>
<head>
    <title>freemarker测试</title>
</head>
<body>
    <h1>${message} , ${name}</h1>
</body>
</html>
时间: 2024-11-08 18:20:58

freemarker入门的相关文章

Freemarker入门案例

Freemarker入门案例 首先需要到freemarker官方下载freemarker的jar包,导入到项目中,如:freemarker-2.3.19.jar 1.先建个freemarker的工具类,FreemarkerUtil.java package com.ljq.fm; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter; impor

freemarker入门例子

freemarker入门例子,直接代码如下: FreeMarkerTest import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.io.Writer; import java.util.ArrayList; import java.util.HashMap; import java.util.List; impor

spring freemarker入门整合

由于Spring默认对freemarker做了支持,所以spring集成freemarker变得很简单.有的项目甚至完全使用模板来做页面展示. 废话少说,看如果使用: 1. 要引入spring所需包 2. 加入freemarker包 <dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>2.3.20<

freemarker入门实例

1.设计思路 (1)新建Maven Project (2)生成freemarker模板 (3)写freemarker页面ftl文件 (4)写测试文件 2.新建Maven Project 3.生成freemarker模板 FreemarkerTemplate.java: /** * @Title:FreemarkerTemplate.java * @Package:com.you.freemarker * @Description:freemarker模板 * @author:Youhaidong

Freemarker入门案例(一)

FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写.FreeMarker被设计用来生成HTMLWeb页面,特别是基于MVC模式的应用程序. 所谓模板,就是一份已经写好了基本内容,有着固定格式的文档,其中空出或者用占位符标识的内容,由使用者来填充,不同的使用者给出的数据是不同的.在模板中的占位符,在模板运行时,由模板引擎来解析模板,并采用动态数据替换占位符部分的内容. FreeMarker不是一个Web应用框架,而适合作为Web应用框架一个组件,FreeMa

网页静态化技术--Freemarker入门

网页静态化技术:为什么要使用网页静态化技术 网页静态化解决方案在实际开发中运用比较多,例如新闻网站,门户网站中的新闻频道或者是文章类的频道. 对于电商网站的商品详细页来说,至少几百万个商品,每个商品又有大量的信息,这样的情况同样也适用于使用网页静态化来解决. 网页静态化技术和缓存技术的共同点都是为了减轻数据库的访问压力,但是具体的应用场景不同,缓存比较适合小规模的数据,而网页静态化比较适合较大规模且相对变化不太频繁的数据. 另外我们如果将网页以纯静态化的形式展现,就可以使用Nginx这样的高性能

freemarker入门实例与源码研究准备工作

首先去freemarker官网下载源码jar包,本文是基于freemarker-2.3.21.tar.gz进行研究的.解压源码包,找到freemarker的源码部分导入eclipse工程中.需要注意的是:freemarker的ftl文件解析使用javacc实现的,所以源码中没有解析类(FMParse.java).要想研究freemarker源码,往往还需要引入freemarker.jar(含有FMParse.class),否则源码会出现编译问题.另外,还需要引入的jar包有:commons-lo

freeMarker入门示例

1.创建Web项目freeMarkerDemo. 2.添加jar包---freemarker-2.3.9.jar. 3.在WebContent目录下新建templates文件夹,用于放置模板文件ftl. 4.在templates目录下新建hello.ftl. <html> <head> <title>Hello!</title> </head> <body> <h1>hello ${user}!</h1> &l

Maven+SpringMVC+Freemarker入门Demo

1 参考http://blog.csdn.net/haishu_zheng/article/details/51490299,用第二种方法创建一个名为mavenspringmvcfreemarker的Maven工程. 2 文件目录结构如下图所示 3 在pom.xml中添加springmvc和freemarker的依赖包,添加完之后的完整内容为 [html] view plain copy <project xmlns="http://maven.apache.org/POM/4.0.0&q

freemarker入门小例子

我用freemarker做了两个小例子,主要的东西是:两个Test文件,一个Animal实体类,一个ftl模板---freemarker的模板,我使用maven做的java工程案例.主要结构内容如下图: 注意:需要导入freemarker的jar包: 1.首先我们先来了解一下freemarker的概念: freeMarker概述: FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写: FreeMarker被设计用来生成HTML Web页面,特别是基于MVC