freeMarker是一个用Java语言编写的模板引擎,它基于模板来生成文本输出。freeMarker与Web容器无关,即在Web运行时,它并不知道Servlet或HTTP。它不仅可以用作表现层的实现技术,而且还可以用于生成XML,JSP或Java 等。

        freemarker入门例子,直接代码如下:

FreeMarkerTest.java

package com.bijian.study.freemark;

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;
import java.util.Map;

import freemarker.template.Configuration;
import freemarker.template.DefaultObjectWrapper;
import freemarker.template.Template;

public class FreeMarkerTest {

	/**
	 * @param args
	 */
	public static void main(String[] args) throws Exception{
		
		Configuration config = new Configuration();
		try {
			//URL path = FreeMarkerTest.class.getResource("");
			String path = new File("").getAbsolutePath();
			config.setDirectoryForTemplateLoading(new File(path));
			config.setObjectWrapper(new DefaultObjectWrapper());
			
			Template template = config.getTemplate("test.ftl","UTF-8");
			//创建数据模型
			Map root = new HashMap();
			List<User> users = new ArrayList<User>();
			User u1 = new User();
			u1.setId("123");
			u1.setName("王五");
			users.add(u1);
			User u2 = new User();
			u2.setId("2345");
			u2.setName("张三");
			
			User u3 = new User();
			u3.setId("fgh");
			u3.setName("李四");
			users.add(u2);
			users.add(u3);
			
			root.put("userList", users);
			Map product = new HashMap();
			root.put("lastProduct", product);
			product.put("url", "http://www.baidu.com");
			product.put("name", "green hose");
			File file = new File(path + "\\test.html");
			if(!file.exists()){
				//System.out.println("file exist");
				file.createNewFile();
			}
			Writer out = new BufferedWriter(new FileWriter(file));
			template.process(root, out);
			out.flush();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

User.java

package com.bijian.study.freemark;

public class User {

	private String id;
	private String name;
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
}

test.ftl

<html>
  <head>
    <title>Welcome!</title>
  </head>
  <body>
  	<#list userList as user>
    	<h1>Welcome ${user.name}!&nbsp;&nbsp;id:${user.id}</h1><br/>
    </#list>
    <p>Our latest product:
    <a href="${lastProduct.url}">${lastProduct.name}  </a>!
  </body>
</html>

工程目录结构:

freemarker入门例子
运行FreeMarkerTest.java后,将在工程下生成一个test.html文件。文件内容如下:

<html>
  <head>
    <title>Welcome!</title>
  </head>
  <body>
  	    	<h1>Welcome 王五!&nbsp;&nbsp;id:123</h1><br/>
    	<h1>Welcome 张三!&nbsp;&nbsp;id:2345</h1><br/>
    	<h1>Welcome 李四!&nbsp;&nbsp;id:fgh</h1><br/>
    <p>Our latest product:
    <a href="http://www.baidu.com">green hose  </a>!
  </body>
</html>

浏览器打开test.html文件,效果如下:

freemarker入门例子

 

文章来源:http://yonglailizhi.iteye.com/blog/656403#

相关文章: