FreeMarker基本操作(一)

package com.ninemax.test;

import java.io.File;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Random;

import com.ninemax.model.User;

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

public class FreeMarkerByOne {

	private Configuration cfg;

	@SuppressWarnings("all")
	public void init() throws Exception {
		// 初始化freemarker配置
		cfg = new Configuration();

		cfg.setDirectoryForTemplateLoading(new File("D:\\freemarker\\src"));

	}

	public void pro() throws Exception {
		// 创建数据模型
		Map<String, Object> map = new HashMap<String, Object>();
		// 填充数据
		map.put("score", new Random().nextInt(100));

		User u1 = new User();
		u1.setName("DarkerInOne");
		u1.setPassword("PasswordInOne");
		User u2 = new User();
		u2.setName("DarkerInTwo");
		u2.setPassword("PasswordInTwo");

		List<User> list = new ArrayList<User>();
		list.add(u1);
		list.add(u2);
		map.put("userList", list);
		map.put("time", new Date());
		map.put("address", "北京,上海,杭州");
		// 加载模板文件
		Template t = cfg.getTemplate("user.ftl");
		// 显示生成后的数据
		t.process(map, new OutputStreamWriter(System.out));
	}

	public static void main(String[] args) throws Exception {
		FreeMarkerByOne fm = new FreeMarkerByOne();
		fm.init();
		fm.pro();
	}
}

user.ftl文件:

--------------if语句的使用----------------
<#if score gte 60>
 	及格
<#elseif score gte 80&&score lte 90>
	良好
<#else>
	高材生
</#if>
--------------空值判断、默认值---------------
${name!"未定义"}
--------------判断值是否存在------------
<#if name??>
  name存在
<#else>
 name不存在
</#if>
-------------使用list遍历数据--------------
<#list userList as user>
<#if  user_has_next> 最后一组:${user.name}-${user.password}
<#else>${user.name}-${user.password}
</#if>
</#list>
-------------其他内建函数-----------------
(1)日期格式化
${time?string("yyyy-MM-dd")}
(2)截取字符串
${address?substring(0,2)}
(3)indexof的使用
${address?last_index_of(",")}
(4)split的使用
<#list "12,13,14,15"?split(",") as item>
${item}
</#list>

输出:

--------------if语句的使用----------------
 	及格
--------------空值判断、默认值---------------
未定义
--------------判断值是否存在------------
 name不存在
-------------使用list遍历数据--------------
 最后一组:DarkerInOne-PasswordInOne
DarkerInTwo-PasswordInTwo
-------------其他内建函数-----------------
(1)日期格式化
2016-03-21
(2)截取字符串
北京
(3)indexof的使用
5
(4)split的使用
12
13
14
15


你可能感兴趣的:(freemarker)