- step 1 新建web工程
- step 2 pom依赖
- step 3 application.yml配置文件
- step 4 新建HelloWorldController 类
- step 5 新建ftl文件
- step 6 启动工程 访问路径
由于spring 官方对于spring boot 不推荐使用jsp,本例实例演示spring boot 整合ftl,即freemarker
step 1 新建web工程
工程新建过程中 记得勾选下面选项,不然后面还需手动创建templates目录
step 2 pom依赖
<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.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!--使用 freemarker时必须引入 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional> <!-- 这个需要为 true 热部署才有效 -->
<!-- 热部署启动后,只要重新编译工程 即可自动重新启动-->
</dependency>
</dependencies>
注意引入依赖时一定要引入devtools,不然后面访问返回404.
step 3 application.yml配置文件
spring:
freemarker:
template-loader-path: classpath:/templates/
cache: false
charset: utf-8
check-template-location: true
content-type: text/html
expose-request-attributes: false
expose-session-attributes: false
request-context-attribute: request
suffix: .ftl
step 4 新建HelloWorldController 类
@Controller
public class HelloWorldController {
@RequestMapping("/index")
public String index(Map<String,String>map){
map.put("name","hello freemarker!");
return "index";
}
@RequestMapping("/welcome")
public String welcome(Map<String,String>map){
map.put("name","welcom to freemarker!");
return "welcome";
}
}
step 5 新建ftl文件
index.ftl
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8"/>
<title>Insert title here</title>
</head>
<body>
${name}
</body>
</html>
welcome.ftl
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8"/>
<title>Insert title here</title>
</head>
<body>
${name}
</body>
</html>
工程目录结构如下
step 6 启动工程 访问路径
通过spring boot 整合freemarker其实,不要求文件后缀名,我们也可以把ftl改为jsp
但是配置文件 application.yml中 suffix: .ftl 也要改为 suffix: .jsp
重启工程后,重新访问 http://127.0.0.1:8080/index。 看到同样能得到一样结果