好好生活,努力工作,天天向上!

BlogJava 首页 新随笔 联系 聚合 管理
  46 Posts :: 1 Stories :: 178 Comments :: 0 Trackbacks

   俗话说万事开头难,这句话对于我们程序员来说非常的适用,刚接触一门新的东西,在初步了解了一些基本的东西后,都像找点东西练练手,找点熟悉的感觉。而我最近的两年多的时间一直在从事Eclipse插件的工作,对Web 应用开发接触比较少,发现只有C/S开发的经验想换个工作环境比较困难。所以觉得学习一下Web的开发知识对自己比较有好处。

   FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,FreeMarker被设计用来生成HTML Web页面,特别是基于MVC模式的应用程序,关于FreeMarker的更多的介绍,可以访问它的主页或者在百度百科中搜索相关的词条(点这里).

    首先新建一个Java工程,比如FreeMarkerTest,将FreeMarkerjar包添加至工程的构建路径中,然后新建一个文件夹template存放模板文件的,下面是我们的模板的内容,名称为“test.ftl":
 
<html>
  
<head>
    
<title>Welcome!</title>
  
</head>
  
<body>
    
<h1>Welcome ${user}!</h1>
    
<p>Our latest product:
    
<href="${latestProduct.url}">${latestProduct.name}  </a>!
  
</body>
</html>  

   在新建一个Java类,名称为FreeMarkerTest.java: 
 

package test;

import freemarker.template.*;
import java.util.*;
import java.io.*;

public class FreeMarkerTest {

    
public static void main(String[] args) throws Exception {
        
/* 创建配置 */
        Configuration cfg 
= new Configuration();
        
/* 指定模板存放的路径*/
        cfg.setDirectoryForTemplateLoading(
new File("template"));
        cfg.setObjectWrapper(
new DefaultObjectWrapper());

        
/* 从上面指定的模板目录中加载对应的模板文件*/
        Template temp 
= cfg.getTemplate("test.ftl");

        
/* 创建数据模型 */
        Map root 
= new HashMap();
        root.put(
"user""Big Joe");
        Map latest 
= new HashMap();
        root.put(
"latestProduct", latest);
        latest.put(
"url""products/greenmouse.html");
        latest.put(
"name""green mouse");

        
/* 将生成的内容打印到控制台中 */
        Writer out 
= new OutputStreamWriter(System.out);
        temp.process(root, out);
        out.flush();
    }
}

  这样就可以了,运行后在控制台可以打印:

<html>
  
<head>
    
<title>Welcome!</title>
  
</head>
  
<body>
    
<h1>Welcome Big Joe!</h1>
    
<p>Our latest product:
    
<href="products/greenmouse.html">green mouse</a>!
  
</body>
</html>  

posted on 2009-08-28 09:13 VWPOLO 阅读(2300) 评论(4)  编辑  收藏 所属分类: Web 开发

Feedback

# re: FreeMarker 简单的入门例子[未登录] 2009-09-16 21:23 Mike
写的很好。 Thank you!  回复  更多评论
  

# re: FreeMarker 简单的入门例子[未登录] 2009-11-11 17:32 aa
dfjlsdfk  回复  更多评论
  

# re: FreeMarker 简单的入门例子[未登录] 2010-03-25 15:50 GreatGhoul
简单易懂,不错。不过感觉freemarker还不是很灵活。  回复  更多评论
  

# ffsf 2010-07-23 21:56 sf
sdf  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航: