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>