springboot整合freemarker模板引擎

引入启步依赖

        >
            >org.springframework.boot>
            >spring-boot-starter-freemarker>
        >

配置相关参数

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>
-US">
    >>
    >hello,${user.name}>
>

创建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文件
springboot整合freemarker模板引擎_第1张图片

创建templates.homepage
创建index.ftl
引入时,通过这种语法引入。
springboot整合freemarker模板引擎_第2张图片

编写一个Controller返回index
springboot整合freemarker模板引擎_第3张图片

将静态资源拷贝到resources目录下面的static目录,spring会自动识别static目录为一个静态文件目录

你可能感兴趣的:(springboot整合freemarker模板引擎)