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

相关推荐
乌蒙山连着山外山5 分钟前
linux中查询多个匹配字段
java·linux·服务器
⑩-9 分钟前
@Component
java
xing-xing10 分钟前
Java多版本配置及版本切换(Mac适配)
java·macos
oioihoii11 分钟前
现代C++系统编程中类型重解释的内存安全范式
java·c++·安全
SimonKing12 分钟前
我为什么放弃了XMind和亿图,投向了这款开源绘图工具的怀抱?
java·后端·程序员
Q_Q51100828515 分钟前
python+django/flask+vue的购物管理系统
spring boot·python·django·flask·node.js
萧曵 丶15 分钟前
CompletableFuture 底层原理详解
java·jvm·多线程·并发编程
Q_Q51100828518 分钟前
python+springboot+django/flask基于数据挖掘的高考志愿推荐系统
spring boot·python·django·flask·node.js·php
爱笑的眼睛1120 分钟前
神经网络的骨架:深入解析前向传播的数学本质与工程实现
java·人工智能·python·ai
Q_Q51100828521 分钟前
python+springboot+django/flask基于用户评论主题挖掘的旅游景点推荐系统
spring boot·python·django·flask·node.js