包含标签 freemarker 的文章

SpringBoot接入FreeMarker完整指南:依赖、配置与可运行样例

前言

FTL 模板语法在 FreeMarker常用语法与指令详解里整理过了,这篇解决另一半问题:怎么把 FreeMarker 接进 SpringBoot。依赖、配置、渲染、全局变量,配一套能直接跑的样例。

1、引入依赖

1
2
3
4
5
6
7
8
<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>

starter 会自动带上 freemarker 核心包和 FreeMarkerAutoConfiguration,不加任何配置就能跑。

2、目录结构

src/main/java
  └── com.example.demo
      ├── DemoApplication.java
      └── controller/PageController.java
src/main/resources
  ├── application.yml
  ├── static/                  # 静态资源(css/js)
  └── templates/               # 模板默认目录(classpath:/templates/)
      ├── index.ftl
      ├── user/
      │   └── detail.ftl
      └── common/
          ├── header.ftl
          └── footer.ftl

约定就三条:模板放 classpath:/templates/,后缀 .ftl,Controller 返回视图名不带后缀。

……

阅读全文

FreeMarker FTL语法速查:从插值到宏的完整笔记

前言

FreeMarker 在老项目和邮件模板、报表模板场景里依然大量存在。FTL 语法细节多、容易忘,这篇按「输出 → 运算 → 流程控制 → 集合 → 指令 → 宏」的顺序整理成速查笔记。

基本原则:所有标签必须闭合,否则 FreeMarker 无法解析。注释格式 <#-- 注释内容 -->,不会输出。

一、字符输出

${emp.name?if_exists}            <#-- 变量存在输出,否则不输出 -->
${emp.name!}                     <#-- 同上 -->
${emp.name?default("xxx")}       <#-- 变量不存在,取默认值xxx -->
${emp.name!"xxx"}                <#-- 同上 -->

常用内建函数:

……

阅读全文

最近文章

分类

标签

其它