freemarker简单小例子
1、需要用到的包 freemarker.jar
2、创建一个JavaBean Food.java
public class Food {
private String name;
private String color;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public Food(String name, String color) {
super();
this.name = name;
this.color = color;
}
@Override
public String toString() {
return "Food [name=" + name + ", color=" + color + "]";
}
}
3、创建测试类FoodTest.java
import java.io.File;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Random;
import freemarker.template.Configuration;
import freemarker.template.Template;
public class FoodTest {
public static void main(String[] args) throws Exception {
/*创建freemarker配置实例*/
Configuration configuration = new Configuration();
/*设置模板加载的目录*/
configuration.setDirectoryForTemplateLoading(new File("template"));
/*创建数据模型*/
Map<String, Object> map = new HashMap<String, Object>();
map.put("food", "苹果");
map.put("random", new Random().nextInt(100));
List<Food> list = new ArrayList<Food>();
list.add(new Food("苹果","红色"));
list.add(new Food("葡萄","紫色"));
list.add(new Food("橙子","橙色"));
list.add(new Food("牛油果","绿色"));
map.put("list", list);
/*加载模板文件*/
Template template = configuration.getTemplate("food2.ftl");
/*显示生成数据*/
Writer out = new OutputStreamWriter(System.out);
template.process(map, out);
out.flush();
out.close();
}
}
4、在WebContext下创建一个文件夹 template
5、在template下创建food.ftl
普通测试:
${food} -- 你好!
-----------------------
if测试:
<#if food=="橙色">橙子</#if>
-----------------------
<#if random gt 60>
及格
<#else>
不及格
</#if>
-----------------------
<#if random gt 90>
优秀
<#elseif random gt 70>
良好
<#elseif random gt 60>
及格
<#else>
不及格
</#if>
-----------------------
测试list集合:
<#list list as f>
${f.name}${f.color}
</#list>
-----------------------
测试包含:
<#include "xing.txt"/>
-----------------------
测试命令宏:
定义宏:
<#macro m1>
<b>好想吃啊</b>
</#macro>
调用宏:
<@m1/>
-----------------------
<#macro m2 a b c>
${a}--${b}--${c}
</#macro>
<@m2 a="张三" b="李四" c="王五"/>
运行FoodTest.java在控制台查看效果