• 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目录

使用idea  spring boot整合freemarker实例_spring

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>

工程目录结构如下

使用idea  spring boot整合freemarker实例_html_02

step 6 启动工程 访问路径

http://127.0.0.1:8080/index

使用idea  spring boot整合freemarker实例_spring_03


http://127.0.0.1:8080/welcome

使用idea  spring boot整合freemarker实例_html_04

通过spring boot 整合freemarker其实,不要求文件后缀名,我们也可以把ftl改为jsp

但是配置文件 application.yml中 suffix: .ftl 也要改为 suffix: .jsp

使用idea  spring boot整合freemarker实例_配置文件_05


使用idea  spring boot整合freemarker实例_spring_06

重启工程后,重新访问 http://127.0.0.1:8080/index。 看到同样能得到一样结果

使用idea  spring boot整合freemarker实例_配置文件_07