FreeMarker简单语法使用

1、模板文件

这里使用到了简单的取值、判断null并设置默认值、循环遍历list、日期格式、if else判断、include

<html>
<head>
	<title>${title!"DefaultTitle"}</title>
</head>
<body>
	<p>网页描述:${desc!"是一个测试"}</p>

	<lable>second的内容:</lable><br>
	<#include "second.ftl"><br><br>

	<table border="1">
		<tr>
			<td>下标</td>
			<td>学号</td>
			<td>姓名</td>
			<td>住址</td>
		</tr>
		<#list stus as s>
			<#if s_index % 3 == 0>
			<tr style="color:blue">
			<#elseif s_index % 3 == 1>
			<tr style="color:yellow">
			<#elseif s_index % 3 == 2>
			<tr style="color:red">
			</#if>
				<td>${s_index}</td>
				<td>${s.id}</td>
				<td>${s.name}</td>
				<td>${s.addr}</td>
			</tr>
		</#list>
	</table><br>
	
	<lable>日期格式</lable>
	<#if currDate??>
		<lable>data:</lable>${currDate?date}<br>
		<lable>time:</lable>${currDate?time}<br>
		<lable>datatime:</lable>${currDate?datetime}<br>
		<lable>自定义:</lable>${currDate?string("yyyy年MM月dd日 HH:mm:ss")}<br>
	<#else>
		<lable>data为空</lable>
	</#if>
	
</body>
</html>

2、Java测试代码

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.junit.Test;

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

public class FreemarkerTest {
	
	@Test
	public void testFreemarker() throws IOException, TemplateException {
		// 1、添加jar包到工程中國
		// 2、freemarker不依賴于web容器
		// 3、创建Configuration对象
		Configuration configuration = new Configuration(Configuration.getVersion());
		
		// 4、设置模板存放位置
		configuration.setDirectoryForTemplateLoading(new File("D:\\WorkSpace\\FairyShop\\fairyshop-portal\\src\\main\\webapp\\WEB-INF\\ftl"));
		
		// 5、设置默认字符集
		configuration.setDefaultEncoding("utf-8");
		
		// 6、获得指定的模板对象
		Template template = configuration.getTemplate("third.ftl");
		
		// 7、创建模板需要的数据集,可以是map,也可以是pojo
		Map root = new HashMap<>();
		root.put("title", "world");
		root.put("stu", new Student(2, "Bob", "西安"));
		List<Student> stus = new ArrayList<>();
		stus.add(new Student(1, "Mary01", "China01"));
		stus.add(new Student(2, "Mary02", "China02"));
		stus.add(new Student(3, "Mary03", "China03"));
		stus.add(new Student(4, "Mary04", "China04"));
		stus.add(new Student(5, "Mary05", "China05"));
		stus.add(new Student(6, "Mary06", "China06"));
		root.put("stus", stus);
		root.put("currDate", new Date());
		
		// 8、创建Writer对象,指定html输出路径
		Writer out = new FileWriter(new File("E:\\Temp\\html\\third.html"));
		
		// 9、调用模板对象的process方法,生成静态页面
		template.process(root, out);
		
		// 10、关闭writer对象
		out.flush();
		out.close();		
		
	}
	
	public class Student{
		private int id;
		private String name;
		private String addr;
		
		public Student(int id, String name, String addr) {
			this.id = id;
			this.name = name;
			this.addr = addr;
		}
		
		public int getId() {
			return id;
		}
		public void setId(int id) {
			this.id = id;
		}
		public String getName() {
			return name;
		}
		public void setName(String name) {
			this.name = name;
		}
		public String getAddr() {
			return addr;
		}
		public void setAddr(String addr) {
			this.addr = addr;
		}
		
	}

}

猜你喜欢

转载自blog.csdn.net/dragonfreedom/article/details/79693124