文章目錄
- 1.FreeMarker介紹
- 1)常用的java模板引擎還有哪些?
- 2)freemarker是一個用Java開發的模板引擎
- 3)模板+數據模型=輸出
- 2.FreeMarker快速入門
- 1)創建測試工程
- 2)配置文件
- 3)創建模型類
- 4)創建模板
- 5)創建controller
- 6)創建啟動類
- 7)測試
1.FreeMarker介紹
1)常用的java模板引擎還有哪些?
答:Jsp、Freemarker、Thymeleaf 、Velocity 等
2)freemarker是一個用Java開發的模板引擎
3)模板+數據模型=輸出
reemarker并不關心數據的來源,只是根據模板的內容,將數據模型在模板中顯示并輸出文件(通常為html,也可以生成其它格式的文本文件)
例子:
數據模型:
模板:
輸出:
2.FreeMarker快速入門
1)創建測試工程
創建一個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.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons‐io</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring‐boot‐starter‐test</artifactId>
</dependency>
</dependencies>
</project>
2)配置文件
配置application.yml和 logback-spring.xml
從cms工程拷貝這兩個文件,進行更改, logback-spring.xml無需更改,application.yml內容如下:
server:
port: 8088 #服務端口
spring:
application:
name: test‐freemarker #指定服務名
freemarker:
cache: false #關閉模板緩存,方便測試
settings:
template_update_delay: 0 #檢查模板更新延遲時間,設置為0表示立即檢查,如果時間大于0會有緩存不方便
進行模板測試
3)創建模型類
在freemarker的測試工程下創建模型類型用于測試
package com.xuecheng.test.freemarker.model;
import lombok.Data;
import lombok.ToString;
import java.util.Date;
import java.util.List;
@Data
@ToString
public class Student {
private String name;//姓名
private int age;//年齡
private Date birthday;//生日
private Float money;//錢包
private List<Student> friends;//朋友列表
private Student bestFriend;//最好的朋友
}
4)創建模板
在 src/main/resources下創建templates,此目錄為freemarker的默認模板存放目錄。
在templates下創建模板文件test1.ftl,模板中的${name}最終會被freemarker替換成具體的數據。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf‐8">
<title>Hello World!</title>
</head>
<body>
Hello ${name}!
</body>
</html>
5)創建controller
創建Controller類,向Map中添加name,最后返回模板文件
package com.xuecheng.test.freemarker.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.client.RestTemplate;
import java.util.Map;
@RequestMapping("/freemarker")
@Controller
public class FreemarkerController {
@Autowired
RestTemplate restTemplate;
@RequestMapping("/test1")
public String freemarker(Map<String, Object> map){
map.put("name","黑馬程序員");
//返回模板文件名稱
return "test1";
}
}
6)創建啟動類
@SpringBootApplication
public class FreemarkerTestApplication {
public static void main(String[] args) {
SpringApplication.run(FreemarkerTestApplication.class,args);
}
}
7)測試
請求:http://localhost:8088/freemarker/test1
屏幕顯示:Hello 黑馬程序員!