freemarker的简单使用

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

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

<#list studentList as student>
${student.id}/${studnet.name}
</#list>
循环使用格式:
<#list 要循环的数据 as 循环后的数据>
</#list>

这里写图片描述
这里写图片描述
4)判断

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

这里写图片描述

5)日期化格式类型

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

这里写图片描述

6)null值的处理

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

这里写图片描述
7)include标签
<#include “模板名称”>
这里写图片描述

项目中整合
1.在工程中引入相应的jar包
这里写图片描述

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

<?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:context="http://www.springframework.org/schema/context"
   xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans.xsd
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">

<!-- freemarker的配置 -->
<bean id="freeMarkerConfigurer" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
    <property name="templateLoaderPath" value="/WEB-INF/ftl/"/>
    <property name="defaultEncoding" value="utf-8"></property>
</bean>
</beans>

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";
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值