freemarker的简单使用

工具:freemarker
介绍:FreeMarker是一个用Java语言编写的模板引擎,它基于模板来生成文本输出。FreeMarker与Web容器无关,即在Web运行时,它并不知道Servlet或HTTP。它不仅可以用作表现层的实现技术,而且还可以用于生成XML,JSP或Java 等,主要用Freemarker做静态页面或是页面展示

1.模板的语法介绍
1)访问map中的key:${key}
2) 访问pojo中的属性,(Student对象,学号、姓名、年龄)
Student对象。学号、姓名、年龄
freemarker的简单使用_第1张图片
3)取集合中的数据
循环使用格式:(取循环中的下标:${student_index})

<#list studentList as student>
${student.id}/${studnet.name}

循环使用格式:
<#list 要循环的数据 as 循环后的数据>

freemarker的简单使用_第2张图片
freemarker的简单使用_第3张图片
4)判断

<#if student_index % 2 == 0>
<#else>

freemarker的简单使用_第4张图片

5)日期化格式类型

直接取值:${date}(date是属性名)如果传来的是一个Date型数据会报错
${date?date} 2016-9-13
${date?time} 17:53:55
${date?datetime} 2016-9-13 17:53:55

freemarker的简单使用_第5张图片

6)null值的处理

如果直接取一个不存在的值(值为null)时会报异常
${aaa}
处理: ${aaa!”默认值”}或者${aaa! }代表空字符串

freemarker的简单使用_第6张图片
7)include标签
<#include “模板名称”>
freemarker的简单使用_第7张图片

项目中整合
1.在工程中引入相应的jar包
freemarker的简单使用_第8张图片

2.编写spring整合freemarket配置文件






    
    


3.方法:
请求的url:/genhtml
参数:无
返回值:ok (String, 需要使用@ResponseBody)
业务逻辑:
1)从spring容器中获得FreeMarkerConfigurer对象。
2)从FreeMarkerConfigurer对象中获得Configuration对象。
3)使用Configuration对象获得Template对象。
4)创建数据集
5)创建输出文件的Writer对象。
6)调用模板对象的process方法,生成文件。
7)关闭流。

4.controller代码

@Controller

public class HtmlGenController {

@Autowired
private FreeMarkerConfigurer freeMarkerConfigurer;

@RequestMapping("/genhtml")
@ResponseBody
public String genHtml()throws Exception {
    // 1、从spring容器中获得FreeMarkerConfigurer对象。
    // 2、从FreeMarkerConfigurer对象中获得Configuration对象。
    Configuration configuration = freeMarkerConfigurer.getConfiguration();
    // 3、使用Configuration对象获得Template对象。
    Template template = configuration.getTemplate("hello.ftl");
    // 4、创建数据集
    Map dataModel = new HashMap<>();
    dataModel.put("hello", "1000");
    // 5、创建输出文件的Writer对象。
    Writer out = new FileWriter(new File("D:/temp/term197/out/spring-freemarker.html"));
    // 6、调用模板对象的process方法,生成文件。
    template.process(dataModel, out);
    // 7、关闭流。
    out.close();
    return "OK";
}

}

你可能感兴趣的:(java)