Freemarker模闆簡介
官方解釋:FreeMarker 是一款模闆引擎, 即一種基于模闆和要改變的資料, 并用來生成輸出文本(HTML網頁,電子郵件,配置檔案,源代碼等)的通用工具。
其實Freemarker的原理就是:模闆+資料模型=輸出
在SpringBoot項目中使用Freemarker模闆
1、搭建環境
在pom.xml檔案中導入資源
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
或者可以在SpringBoot項目建構時勾選Freemarker模闆 如圖:
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHLuVzVZNTOXlFcoNTYvhnMMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnLykjN0ETOykTMxADOwkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
勾選後會自動下載下傳jar包并在pom檔案中使用
2、在配置檔案配置Freemarker
yaml檔案配置方式:
spring:
freemarker:
suffix: .html
properties檔案配置方式:
spring.freemarker.suffix= .html
3、在templates檔案夾中建立html模闆
用例測試 :
java 代碼
@Controller
@RequestMapping("/index/")
public class StudentController {
@RequestMapping("test")
public String test(Model model) {
//傳入一個字元串
model.addAttribute("test","Hellow Spring boot Freemarker!!");
//傳入對象
Student stu = new Student(101, "張三");
model.addAttribute("stu",stu);
//傳入集合
List<Object> list = new ArrayList<Object>();
list.add(new Student(102, "李四"));
list.add(new Student(103,"王五"));
model.addAttribute("list",list);
return "test";
}
}
html 代碼
<body>
<!-- 渲染字元串 -->
${test}</br>
<!-- 渲染對象 -->
<!-- if stu?? 表示如果stu存在 則渲染下面代碼 否則渲染else标簽下的代碼 -->
<#if stu??>
編号:${stu.id}
名字:${stu.name}</br>
<#else>
else
</#if>
<!-- 渲染集合 list标簽 類似于java中的增強for循環 -->
<#list list as s>
編号:${s.id}
名字:${s.name}</br>
</#list>
</body>
測試結果 如圖
當然html檔案不一定要放在templates檔案夾下 。那麼如何更換檔案的存放位置呢?
解決方法 : 可以在配置檔案中加入這段代碼:
yaml檔案配置:
spring:
freemarker:
suffix: .html
template-loader-path: classpath:/web
properties檔案配置
spring.freemarker.template-loader-path=classpath:/web
測試:
那麼 如何在html檔案中引入其他架構呢 如:jquery 、js 、 css 這些呢
這裡我們用jquery來舉例
方法1——直接使用
直接将jar檔案放入static檔案夾下 然後在html檔案夾中引用即可 大家都很熟悉了,這裡就不做示範了。
方法2——webjar
什麼是webjar
webjar是将前端資源整合的一個jar包,可以使用maven部署引用在項目中,對資源進行統一管理。
官網:webjar官網
使用方法:
1、在pom檔案中引入依賴:
<dependency>
<groupId>org.webjars</groupId>
<artifactId>jquery</artifactId>
<version>3.4.1</version>
</dependency>
2、在html檔案中引用
編寫js代碼 測試:
<script type="text/javascript">
$("#btn").click(function(){
alert("click");
})
</script>
測試結果 如圖: