1、a.ftl
1 你好,${user},今天你的精神不错! 2 3 ----------------------------- 4 测试if语句: 5 <#if user=="老高"> 6 高! 7 </#if> 8 9 ****************** 10 分数为:${random} 11 <#if random gte 60> 12 及格 13 <#else> 14 不及格 15 </#if> 16 17 ****************** 18 <#if random gte 90> 19 优秀 20 <#elseif random gte 80> 21 良好 22 <#else> 23 一般 24 </#if> 25 26 -------------------------------- 27 测试List语句: 28 <#list lst as dizhi> 29 <b>${dizhi}</b><br/> 30 </#list> 31 --------------------------------- 32 测试include语句 33 <#include "included.txt" /> 34 35 ----------------------------------- 36 测试自定义指令(macro指令) 37 定义宏: 38 <#macro m1> <#--定义指令m1--> 39 <b>aaabbbccc</b> 40 <b>dddeeefff</b> 41 </#macro> 42 43 定义带参的宏指令: 44 <#macro m2 a b c> 45 ${a}--${b}--${c} 46 </#macro> 47 48 49 50 <#macro border> 51 <table border=4 cellspacing=0 cellpadding=4> 52 <tr><td> 53 <#nested> 54 </td></tr> 55 </table> 56 </#macro> 57 58 调用宏: 59 <@m1 /> <@m1 /> 60 <@m2 "hi" "nihao" "hello"/> 61 <#-- <@border "sss"/> --> 62 <@border> 63 agsdjgdjgsjkhksdhkdhksh 64 </@border> 65 66 ----------------------------------- 67 测试命名空间 68 <#import "b.ftl" as bb /> 69 <@bb.copyright date="2010-2011"/> 70 ${bb.mail} 71 <#assign mail="my@163.com"/> 72 ${mail} 73 <#assign mail="my@163.com" in bb/> 74 ${bb.mail} 75 -------------------------------- 76 测试数据类型: 77 定义: 78 <#assign b=123 /> 79 ${date1?string("yyyy-MM-dd HH:mm:ss")} 80 --------------------------------------- 81 ${html2?html} 82 83 ------------------------- 84 测试空值处理: 85 <#-- ${sss} 没有定义这个变量,会报异常 --> 86 ${sss!} <#-- 没有定义这个变量,默认值是空字符串 --> 87 ${sss!"abc"} <#--没有定义这个变量,默认值是字符串abc -->
2、b.ftl
<#macro copyright date> <p>Copyright (C) ${date} 北京尚学堂.</p> </#macro> <#assign mail = "bjsxt@163.com">
3、included.txt
这是被包含的文件
4、测试类Test1.java
1 package com.test.freemarker; 2 3 import java.io.File; 4 import java.io.OutputStreamWriter; 5 import java.io.Writer; 6 import java.util.ArrayList; 7 import java.util.Date; 8 import java.util.HashMap; 9 import java.util.List; 10 import java.util.Map; 11 import java.util.Random; 12 13 import freemarker.template.Configuration; 14 import freemarker.template.Template; 15 16 public class Test1 { 17 18 public static void main(String[] args) throws Exception { 19 //创建Freemarker配置实例 20 Configuration cfg = new Configuration(); 21 22 cfg.setDirectoryForTemplateLoading(new File("templates")); 23 24 //创建数据模型 25 Map root = new HashMap(); 26 root.put("user", "老高"); 27 root.put("random", new Random().nextInt(100)); 28 29 30 List list = new ArrayList();//测试list 31 list.add("北京"); 32 list.add("上海"); 33 list.add("纽约"); 34 root.put("lst", list); 35 36 root.put("date1", new Date()); 37 38 root.put("html2", "<b>粗体</b>"); 39 40 41 //加载模板文件 42 Template t1 = cfg.getTemplate("a.ftl"); 43 44 //显示生成的数据 45 Writer out = new OutputStreamWriter(System.out); 46 t1.process(root, out); 47 out.flush(); 48 } 49 50 }