引入启步依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
配置相关参数
spring:
freemarker:
charset: UTF-8 #freemarker编码
content-type: text/html;charset=UTF-8
expose-request-attributes: true # 暴露请求参数
expose-session-attributes: true # 把session中的属性也暴露到变量中
expose-spring-macro-helpers: true
suffix: .ftl
settings:
datetime_format: yyyy-MM-dd HH:mm:ss
default_encoding: UTF-8
在resources目录下面的templates目录下创建文件
resources\templates\hello.ftl
<!DOCTYPE html>
<html lang="en-US">
<head></head>
<body>hello,${user.name}</body>
</html>
创建controller
package cn.ztjr.house.controller;
import cn.ztjr.house.mapper.UserMapper;
import cn.ztjr.house.pojo.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import java.util.List;
@Controller
public class HelloController {
@Autowired
private UserMapper userMapper;
@RequestMapping("hello")
public String hello(ModelMap modelMap){
List<User> users = userMapper.select01();
User one = users.get(0);
modelMap.put("user",one);
//返回模板引擎的名字
return "hello";
}
}
启动后可以正常访问,关于freemarker的语法,需要自行查看官网。
抽取页面中相同的部分
定义成宏
在需要的地方可以引入,减少重复编码
创建目录templates.common
编写common.ftl
还需要配置application.yml,告诉freemark这个common是一个空文件而不是一个简单的freemarker文件
创建templates.homepage
创建index.ftl
引入时,通过这种语法引入。
编写一个Controller返回index
将静态资源拷贝到resources目录下面的static目录,spring会自动识别static目录为一个静态文件目录