一、a.ftlhtml
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 -->
二、b.ftljava
<#macro copyright date> <p>Copyright (C) ${date} 北京尚學堂.</p> </#macro> <#assign mail = "bjsxt@163.com">
三、included.txtdom
這是被包含的文件
四、測試類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 }