freemarker简单小例子

本文介绍了一个使用Freemarker模板引擎的简单示例,包括创建JavaBean、配置Freemarker并结合模板文件生成HTML内容的过程。示例中演示了如何通过Java代码将数据模型传递给模板,并在模板中使用条件语句和循环来展示数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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在控制台查看效果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值