package cn.e3mall.freemarker;
import freemarker.template.Configuration;
import freemarker.template.Template;
import org.junit.Test;
import java.io.File;
import java.io.FileWriter;
import java.io.Writer;
import java.util.HashMap;
import java.util.Map;
/**
* @author Mr.Li
* @version 1.0
* @Description:
* @Modified By:
* @date 2018/12/15 20:08
*/
public class FreeMarkerTest {
@Test
public void testFreeMarker() throws Exception{
//创建一个模板文件
//创建一个Configuration对象,并设置当前FreeMarker的版本号
Configuration configuration=new Configuration(Configuration.getVersion());
//设置模板文件保存的目录
configuration.setDirectoryForTemplateLoading(new File("F:\\IDEA\\WestosShopping\\e3-item-web\\src\\main\\webapp\\WEB-INF\\ftl"));
//模板文件的编码格式,一般是UTF-8
configuration.setDefaultEncoding("utf-8");
//加载模板文件,创建一个模板对象
Template template = configuration.getTemplate("student.ftl");
//创建一个数据集,可以使Pojo也可以是Map,推荐使用Map
Map data=new HashMap<>();
//创建一个pojo对象
Student student=new Student(1,"小明",18,"回龙观");
data.put("student",student);
//创建一个Writer对象,指定输出文件的路径以及文件名
Writer out=new FileWriter(new File("F:\\JavaEE32\\freemarker\\student.html"));
//生成静态页面
template.process(data,out);
//关闭流
out.close();
}
}
package cn.e3mall.freemarker;
/**
* @author Mr.Li
* @version 1.0
* @Description: FreeMarker的模板pojo
* @Modified By:
* @date 2018/12/17 20:55
*/
public class Student {
private int id;
private String name;
private int age;
private String address;
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 int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public Student(int id, String name, int age, String address) {
super();
this.id = id;
this.name = name;
this.age = age;
this.address = address;
}
public Student(){
}
}
package cn.e3mall.freemarker;
import freemarker.template.Configuration;
import freemarker.template.Template;
import org.junit.Test;
import java.io.File;
import java.io.FileWriter;
import java.io.Writer;
import java.util.*;
/**
* @author Mr.Li
* @version 1.0
* @Description:
* @Modified By:
* @date 2018/12/15 20:08
*/
public class FreeMarkerTest {
@Test
public void testFreeMarker() throws Exception{
//创建一个模板文件
//创建一个Configuration对象,并设置当前FreeMarker的版本号
Configuration configuration=new Configuration(Configuration.getVersion());
//设置模板文件保存的目录
configuration.setDirectoryForTemplateLoading(new File("F:\\IDEA\\WestosShopping\\e3-item-web\\src\\main\\webapp\\WEB-INF\\ftl"));
//模板文件的编码格式,一般是UTF-8
configuration.setDefaultEncoding("utf-8");
//加载模板文件,创建一个模板对象
Template template = configuration.getTemplate("student.ftl");
//创建一个数据集,可以使Pojo也可以是Map,推荐使用Map
Map data=new HashMap<>();
/**
* FreeMarker的模板语法:
*/
//1、文本形式【.txt】
data.put("hello","hello FreeMarker ! ! !");
//2、访问pojo对象中的属性
Student student=new Student(1,"小明",18,"回龙观");
data.put("student",student);
//3、添加一个List
List<Student> stuList=new ArrayList<Student>();
stuList.add(new Student(1,"小明1",18,"回龙观"));
stuList.add(new Student(2,"小明2",19,"回龙观"));
stuList.add(new Student(3,"小明3",20,"回龙观"));
stuList.add(new Student(4,"小明4",21,"回龙观"));
stuList.add(new Student(5,"小明5",22,"回龙观"));
stuList.add(new Student(6,"小明6",23,"回龙观"));
stuList.add(new Student(7,"小明7",24,"回龙观"));
stuList.add(new Student(8,"小明8",25,"回龙观"));
stuList.add(new Student(9,"小明9",26,"回龙观"));
data.put("stuList",stuList);
//4、添加日期类型
data.put("date",new Date());
//5、null值的测试
data.put("val",null);
// 创建一个Writer对象,指定输出文件的路径以及文件名
Writer out=new FileWriter(new File("F:\\JavaEE32\\freemarker\\student.html"));
//生成静态页面
template.process(data,out);
//关闭流
out.close();
}
}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd
http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<!--配置FreeMarker-->
<bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
<property name="templateLoaderPath" value="/WEB-INF/ftl/" />
<property name="defaultEncoding" value="UTF-8" />
</bean>
</beans>
package cn.e3mall.item.controller;
import freemarker.template.Configuration;
import freemarker.template.Template;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer;
import java.io.File;
import java.io.FileWriter;
import java.io.Writer;
import java.util.HashMap;
import java.util.Map;
/**
* @author Mr.Li
* @version 1.0
* @Description: 生成静态页面测试Controller
* @Modified By:
* @date 2018/12/18 0:20
*/
@Controller
public class HtmlGenController {
@Autowired
private FreeMarkerConfigurer freeMarkerConfigurer;
@RequestMapping("/genhtml")
@ResponseBody
public String genHtml() throws Exception{
Configuration configuration = freeMarkerConfigurer.getConfiguration();
//加载模板对象
Template template = configuration.getTemplate("hello.ftl");
//创建一个数据集
Map data=new HashMap<>();
data.put("hello",123456);
//指定文件输出的路径及文件名
Writer out=new FileWriter(new File("F:\\JavaEE32\\freemarker\\hello2.html"));
//输出文件
template.process(data,out);
//关闭流
out.close();
return "ok";
}
}