创建测试工程
创建一个freemarker 的测试工程专门用于freemarker的功能测试与模板的测试。
拷贝依赖
pom.xml如下
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>xc-framework-parent</artifactId>
<groupId>com.xuecheng</groupId>
<version>1.0-SNAPSHOT</version>
<relativePath>../xc-framework-parent/pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>test-freemarker</artifactId>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-io</artifactId>
</dependency>
</dependencies>
</project>
右击
配置文件
配置application.yml和 logback-spring.xml,从cms工程拷贝这两个文件,进行更改, logback-spring.xml无需更 改,application.yml内容如下:
server:
port: 8088 #服务端口
spring:
application:
name: test-freemarker #指定服务名
freemarker:
cache: false #关闭模板缓存,方便测试。因为freemark是有缓存的,所以在开发阶段关闭缓存
settings:
template_update_delay: 0 #检查模板更新延迟时间,设置为0表示立即检查,如果时间大于0会有缓存不方便进行模板测试
创建模型类
在freemarker的测试工程下创建模型类型用于测试
创建模板
在 src/main/resources下创建templates,此目录为freemarker的默认模板存放目录。 在templates下创建模板文件test1.ftl,模板中的${name}终会被freemarker替换成具体的数据。
创建controller
创建Controller类,向Map中添加name,后返回模板文件。
注意:@Controller不是@restController
package com.xuecheng.test.freemarker.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import java.util.*;
/**
* @author Administrator
* @version 1.0
* @create 2018-06-12 18:40
**/
@RequestMapping("/freemarker")
@Controller
public class FreemarkerController {
@RequestMapping("/test1")
public String test1(Map<String, Object> map){//形参map,放在springmvc的形参最终request会响应给用户,也就是这个map虽然只是放在形参,但是request域里面的数据会拿到这些map信息,也就是freeMark在生成模板的时候就可以拿到map里的数据。
//map就是freeMark模板所使用的数据
map.put("name","java程序员");
//模板文件名称:返回freemark模板位置,基于resource/templates路径。
return "test1";//如何test1在resource/templates/aa/test1.ftl则这里写成return "aa/test1";
}
}
创建启动类
运行