文档章节

FreeMarker配置与应用

i33
 i33
发布于 2012/10/25 17:10
字数 515
阅读 115
收藏 0

FreeMarker 2.3.18 下载:

http://sourceforge.net/projects/freemarker/files/freemarker/2.3.18/freemarker-2.3.18.tar.gz/download

FreeMarker 2.3.18 API:http://freemarker.sourceforge.net/docs/api/


下面演示一个简单的使用项目过程:

1. 使用myeclipse创建一个web项目testFM

 

2. 把下载到的jar包(freemarker-2.3.18.jar)放到\WebRoot\WEB-INF\lib目录下。

下载地址:http://freemarker.sourceforge.net/freemarkerdownload.html (注:官方网站.org的经常打不开)

3. 在WebRoot下面新建templates文件包,然后在里面新建扩展名为ftl的模板。


    a) 创建hello.ftl内容如下:

<html>
<head>
  <title>hello!</title>
</head>
<body>
  <h1>hello ${user}!</h1>
</body>
</html>
4. 在src目录下创建example包 和Hello.java文件,代码如下:


package example;
import java.io.*;
import java.util.*;
import javax.servlet.ServletException;
import javax.servlet.http.*;
import freemarker.template.*;
public class Hello extends HttpServlet{
private Configuration cfg;

public void init(){
    //初始化FreeMarker配置
    //创建一个Configuration实例
    cfg = new Configuration();
    //设置FreeMarker的模版文件位置
    cfg.setServletContextForTemplateLoading(getServletContext(),"templates");
}

public void doGet(HttpServletRequest request,HttpServletResponse response) 
                                            throws ServletException,IOException{
    //建立数据模型
    Map root = new HashMap();
    //放入对应数据key value
    root.put("user","zdz");
    //取得模版文件
    Template t =cfg.getTemplate("hello.ftl"); 
    // FreeMarker会到系统的/WebRoot/templates/目录下找hello.ftl文件
    //开始准备生成输出
    //使用模版文件的charset作为本页面的charset
    //使用text/html MIME-type
    response.setContentType("text/html; charset=" + t.getEncoding());
    PrintWriter out = response.getWriter();

    //合并数据模型和模版,并将结果输出到out中
    try{
         t.process(root,out);// 用模板来开发servlet可以只在代码里面加入动态的数据
    }catch(TemplateException e){
         throw new ServletException("处理Template模版中出现错误", e);
    }
}
}

5.配置web.xml 代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" 
xmlns="http://java.sun.com/xml/ns/j2ee" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<servlet>
  <servlet-name>Hello</servlet-name>
  <servlet-class>example.Hello</servlet-class>
</servlet>
<servlet-mapping>
  <servlet-name>Hello</servlet-name>
  <url-pattern>*.do</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>
6.在WebRoot下面新建引导页面index.html,代码如下:


<html>
<head>
    <title>Hello FreeMarker Example</title>
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
</head>
<body>
    点击下面链接看看效果:
    <hr>
    <a href="hello.do">调用Hello模板</a> 
</body>
</html>

7.把testFM项目部署到tomcate并启动服务。


8.打开浏览器,输入地址:http://localhost:8080/testFM/



本文转载自:http://gqsunrise.iteye.com/blog/1659118

共有 人打赏支持
i33

i33

粉丝 45
博文 241
码字总数 7442
作品 0
东城
私信 提问
分享Struts2与Freemarker的配置方法

刚才在OECP社区看到一篇文章,《Struts2与Freemarker的配置方法》觉得很好,所以转发给大家分享一下。 Freemarker是模板引擎,也可以说是一种表现层的框架,它有自己的模板指令,开发者如果不...

oecp
2011/05/16
0
0
Struts2与Freemarker的配置方法(附源码和插件)

Freemarker是模板引擎,也可以说是一种表现层的框架,它有自己的模板指令,开发者如果不熟悉这些语法,很难进行表现层的开发。Struts2框架技术对Freemarker做了很好的支持,开发人员只要熟悉...

oecp
2011/04/28
0
0
FreeMarker在eclipse中的入门例子

今天海浪为大家分享一个FreeMarker在eclipse中的入门例子。 一、在eclipse中创建FreeMarker模板 在FreeMarker中模板的概念就是:包含一些由${…}包围的特殊代码的文件。这些特殊代码是FreeM...

oecp
2011/04/26
0
0
freemaker开发学习《一》

 FreeMarker是一个非常优秀的模板引擎,这个模板引擎可用于任何场景,FreeMarker负责将数据模型中的数据合并到模板中,从而生成标准输出.FreeMarker可以提供昜好的团队协作,对于界面开发人...

xiaml
2014/04/25
0
0
FreeMarker在eclipse中的入门例子

刚接触FreeMarker时,只是简单的了解FreeMarker的一些概念及工作原理,至于如何使用FreeMarker还不是非常清楚。随着学习的深入,才渐渐对FreeMarker有了更深入的理解。本文将从基础应用着手,...

oecp
2011/05/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

编码规范

4.、编码时的一些建议 1、尽量指定类、方法的final修饰符——虚拟机会想办法内联所有的final方法来减少方法执行时创建栈帧的数量,从而降低栈溢出的风险 2、尽量重用对象——重复new对象会增...

呵呵哒灬
57分钟前
2
0
第一个docker化的java应用

Docker 思想 集装箱 标准化:运输方式/存储方式/API 接口 隔离

BeanHo
58分钟前
1
0
数据库技术-Mysql主从复制与数据备份

数据库技术-Mysql 主从复制的原理: MySQL中数据复制的基础是二进制日志文件(binary log file)。一台MySQL数据库一旦启用二进制日志后,其作为master,它的数据库中所有操作都会以“事件”...

须臾之余
昨天
14
0
Git远程仓库——GitHub的使用(一)

Git远程仓库——GitHub的使用(一) 一 、 Git远程仓库 由于你的本地仓库和GitHub仓库之间的传输是通过SSH加密的,所以需要一下设置: 步骤一、 创建SSH key 在用户主目录下,看看有没有.ss...

lwenhao
昨天
4
0
SpringBoot 整合

springBoot 整合模板引擎 SpringBoot 整合Mybatis SpringBoot 整合redis SpringBoot 整合定时任务 SpringBoot 整合拦截器...

细节探索者
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部