Freemarker和SpringBoot:
(注意,爲什麼不用JSP,因爲Springboot對JSP的支持不好!!)
1,SpringMVC和JSP的集成原理 VS SpringMVC 和Freemarker的集成原理;
2,Springboot和Freemarker集成:
1)引入spring-boot-starter-freemarker;
<!-- freemarker依賴-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
2)Springboot對freemarker的配置:(也可以不配置,全使用默認)
1,spring.freemarker.enabled=true:是否開啓freemarker支持;
2,spring.freemarker.allow-request-override:是否允許request中的屬性覆蓋model中同名屬性;默認false;
3,spring.freemarker.allow-session-override:是否允許session中的屬性覆蓋model中同名屬性;默認false;
4,spring.freemarker.cache:是否支持模板緩存;默認false;
5,spring.freemarker.charset=UTF-8:模板編碼
6,spring.freemarker.content-type=text/html:模板contenttype;
7,spring.freemarker.expose-request-attributes:是否開啓request屬性expose,默認false;
8,spring.freemarker.expose-session-attributes:是否開啓session屬性expose,默認false;
9,spring.freemarker.expose-spring-macro-helpers:是否開啓spring的freemarker宏支持;默認爲false;
10,spring.freemarker.prefer-file-system-access:默認爲true,支持實時檢查模板修改;
11,spring.freemarker.prefix:加載模板時候的前綴;
12,spring.freemarker.settings.*:直接配置freemarker參數
13,spring.freemarker.suffix:模板文件後綴;
14,spring.freemarker.template-loader-path=classpath:/templates/:模板加載地址
3)動態資源路徑:
4)測試Controller類
@Controller
public class FreekMarkerController {
//@ResponseBody
@RequestMapping("/hello")
public String hello(Model model) {
model.addAttribute("name","java");
return "hell";
}
}
5) 測試頁面
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
hello ${name}
</body>
</html>