SpringBoot整合Freemarker(一)

Freemarker和jsp一样是一个视图的引擎模板,其实所有的模板引擎的工作原理都是类似的,如下图:

接下来就具体讲解一下Freemarker的用法,参考手册:模板 + 数据模型 = 输出 - FreeMarker 中文官方参考手册

SpringBoot默认就支持这个模板,下面看看怎么把他们整合在一起:

1、配置freemarker的启动器

复制代码
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>

2、编程controller类

3.编写ftl模板文件,注意:模板文件必须放在src/resources/templates目录下

4、测试

5.freemarker的页面语法总结

freemarker的标签种类:

  • ${..}:FreeMarker will replace it in the output with the actual value of the thing in the curly brackets. They are called interpolation s.
    • ...
  • 注释标签,注意不是

一些特殊的指令:

  • r代表原样输出:${r"C:\foo\bar"}
  • ${x}
  • ?引出内置指令
    • String处理指令:
      • html : 特殊的html字符将会被转义,比如"<
      • cap_first 、lower_case 、upper_case
        • cap_first:将字符串的第一个字符或者字母(仅前几个字符是空格的情况)大写(如果第一个字符是字母);
        • 如果字符串的第一个字符不是字母(空格除外),将按照原来字符串的格式返回;若第一个字符是字母并且是大写的情况,结果同上。
      • trim : 除去字符串前后的空格
    • sequences处理指令
      • size :可以用于返回list集合的元素个数
    • numbers处理指令
      • int : number的整数部分,(e.g. -1.9?int is -1)

对于null,freemarker会报错

  • ! :默认值操作符,语法结构为: unsafe_expr !default_expr,
    • 比如 ${mouse!"No mouse."} 当mouse不存在时,返回default value;
    • (product.color)!"red" 这种方式,能够处理product或者color为miss value的情况;
    • 而product.color!"red"将只处理color为miss value的情况
  • ?? : Missing value test operator ,测试是否为missing value
    • unsafe_expr?? : product.color?? 将只测试color是否为null
    • (unsafe_expr)?? : (product.color)?? 将测试product和color是否存在null

Mouse found

No mouse found

Creating mouse...

Mouse found

No mouse foun

相关推荐
天空属于哈夫克317 分钟前
企业微信API常见的错误和解决方案
java·数据库·企业微信
摇滚侠1 小时前
VMvare 虚拟机 Oracle19c 安装步骤,远程连接 Oracle19c,百度网盘安装包
java·oracle
梁萌1 小时前
idea报错找不到XX包的解决方法
java·intellij-idea·启动报错·缺少包
Agent产品评测局1 小时前
生产排期与MES/ERP系统打通,实操方法详解 —— 2026企业级智能体自动化选型与实战指南
java·运维·人工智能·ai·chatgpt·自动化
阿丰资源2 小时前
基于Spring Boot的电影城管理系统(直接运行)
java·spring boot·后端
呱牛do it2 小时前
企业级门户网站设计与实现:基于SpringBoot + Vue3的全栈解决方案(Day 8)
java
消失的旧时光-19433 小时前
Spring Boot 工程化进阶:统一返回 + 全局异常 + AOP 通用工具包
java·spring boot·后端·aop·自定义注解
NE_STOP3 小时前
Redis--发布订阅命令和Redis事务
java
PAC_3Dame3 小时前
记一次真实的线上OOM
java
SunnyDays10113 小时前
如何在Java中将Word文档转换为图像(JPEG、PNG或SVG)
java