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

相关推荐
没差c6 分钟前
处理json,将接口返回的数据转成list<T>,和几个时间处理方法的工具类
java·json·list
Hanson Huang6 分钟前
23中设计模式-迭代器(Iterator)设计模式
java·设计模式·迭代器模式·行为型设计模式
天草二十六_简村人10 分钟前
Rabbitmq消息被消费时抛异常,进入Unacked 状态,进而导致消费者不断尝试消费(下)
java·spring boot·分布式·后端·rabbitmq
程序员小刚29 分钟前
基于SpringBoot + Vue 的汽车租赁管理系统
vue.js·spring boot·汽车
低头不见39 分钟前
Spring Boot 的启动流程
java·spring boot·后端
小码农<^_^>40 分钟前
linux环境变量
java·linux·运维
计算机-秋大田1 小时前
基于Spring Boot的消防物资存储系统的设计与实现(LW+源码+讲解)
java·vue.js·spring boot·后端·课程设计
计算机-秋大田1 小时前
基于Spring Boot的乡村养老服务管理系统的设计与实现(LW+源码+讲解)
java·spring boot·后端
&有梦想的咸鱼&2 小时前
Android Compose 框架物理动画之弹簧动画(Spring、SpringSpec)深入剖析(二十七)
android·java·spring
天草二十六_简村人2 小时前
Rabbitmq消息被消费时抛异常,进入Unacked 状态,进而导致消费者不断尝试消费(上)
java·spring boot·分布式·后端·rabbitmq