第一部分:Spring Boot 集成 FreeMarker
1、pom.xml
需要这些依赖
org.springframework.boot spring-boot-starter-freemarker org.springframework.boot spring-boot-starter-web
2、yml
我喜欢 yml,所以删掉 application.properties
,新建 application.yml
3、配置
在 application.yml
中添加如下配置
# freemarkerspring: freemarker: template-loader-path: classpath:/templates/ cache: false charset: UTF-8 check-template-location: true content-type: text/html expose-request-attributes: true expose-session-attributes: true request-context-attribute: request suffix: .html
4、Controller - View
package com.fengwenyi.demo.freemarker.example.controller;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.servlet.ModelAndView;/** * @author Wenyi Feng */@Controllerpublic class HomeController { @RequestMapping("/") public ModelAndView home() { ModelAndView mv = new ModelAndView("home"); return mv; }}
freemarker Hello FreeMarker!
Welcome to Learn FreeMarker With Me!
目录
5、运行效果
第二部分:取值
1、学过 freemarker 的的童鞋都知道,需要在spring的配置文件中添加上一些属性,那Spring boot 应该怎么做呢?
# freemarkerspring: freemarker: template-loader-path: classpath:/templates/ cache: false charset: UTF-8 check-template-location: true content-type: text/html expose-request-attributes: true expose-session-attributes: true request-context-attribute: request suffix: .html settings: #number_format: '0.##' #数字格式化,无小数点,如果有小数,只保留两位小数 number_format: '0.#############################################' date_format: 'yyyy_MM_dd HH:mm:ss' # 这个是对java.sql.Date起作用 # boolean_format: 'Y, N' # 一般不这么配置,因为我们需要逻辑值,如果需要,我们可以在需要的地方将Boolean->String
2、Controller
@GetMapping("/get")public ModelAndView getValue() { ModelAndView mv = new ModelAndView("get-value"); mv.addObject("intVar", 100); mv.addObject("longVar", 100000000000000L); mv.addObject("stringVar", "我是字符串"); mv.addObject("doubleVar", Math.PI);// mv.addObject("doubleVar", 3.14);// mv.addObject("doubleVar", 3.1415D); mv.addObject("booleanVar", Boolean.TRUE); mv.addObject("dateUtilVar", new Date()); mv.addObject("dateSqlVar", new java.sql.Date(new Date().getTime())); mv.addObject("nullVar", null); return mv;}
3、View
Type | Value |
---|---|
Integer | ${intVar} |
Long | ${longVar} |
String | ${stringVar} |
Double | ${doubleVar} |
Boolean | ${booleanVar?string('Yes', 'No')} |
java.util.Date | ${dateUtilVar?string('yyyy/MM/dd HH:mm:ss')} |
java.sql.Date | ${dateSqlVar} |
null | ${nullVar!} |
null | ${nullVar! '-'} |
不存在的变量 | ${notExist! '-'} |
4、效果
资料
1、FreeMarker 模块的代码已上传至Github:
2、学习视频: