博客:Java模板引擎性能对比  Thymeleaf性能偏低。

博客:Java模板引擎 FreeMarker   综合性的介绍,内容有点粗糙。

博客:JavaEE进阶——FreeMarker模板引擎

地址:https://blog.csdn.net/bskfnvjtlyzmv867/article/details/81099114

这篇博客讲的很详细,可以认真学习下。

------------------------------------------------------

Java模板引擎之Freemarker

慕课网有视频资源,讲的很详细系统。本文仅为学习整理的笔记,如要学习,可到慕课网系统学习。

因为自定义指令,自定义方法等部分,本人并没有学懂。

慕课课程标题:Java模板引擎之Freemarker

慕课地址:https://www.imooc.com/coursewiki/801

如有侵权,请留言告知,本人会隐藏该博客记录。

-------------------------------------------------

Freemarker模板引擎
基于java语言
不是web框架,是个组件
1,定义一个模板文件
2,在freemarker模板文件中写,标记语言。
3,划定学习范围
4,定义学习程度和目标。
5,创建可行计划
6,maven+spring+freemarker项目
7,pom.xml文件依次查看
8,标签
#if
#list
?string()

可以尝试安装freemarker插件
可以通过start.spring.io中创建一个springboot项目
定义变量,输出变量:

使用assign 定义了一个变量var,赋值为:hello  spring  boot

取值方法:

常见的取值指令:

2)

基本取值:

后台代码:

前台代码:

其他数据类型:

boolan类型比较特殊,如果需要在页面展示,可以string转化下,不能直接在页面输出。
freemarker有配置文件,可以在配置文件中配置常见的format

常见格式化配置:

日期类型比价特殊:

?String()这是freemarker的语法。

变量为null,怎么取值呢?会报错!取值后面加上英文!

 默认值:

输出不存在的变量,后台没有定义的:也需要加!

逻辑-赋值和运算

变量运算如:

封装类型:

假如对象和对象的属性都可能为null

假如两个对象都可能为null,整体加上括号,添加英文!

也可以输出富文本:
按普通的 输出值写就可以。brief字符串中包含html代码

假如只想输出文本,不想输出富文本:

需要在使用指令:?html

List集合的遍历

后台代码:

前台代码:

集合Map的遍历

后台代码:

前台代码:既有取key,又有取值

if表达式

else  if,else标签是放在<#if></#if>标签内部的。

if   else if    else

条件判断,会结合list
判断list是否为空,是否存在

判断list中的数据

另一种写法:

检查变量是否存在

总结:进行判断使用:两个??或者?exists

多条件判断:

逻辑或

逻辑与

复合逻辑或

逻辑非

swith语法:

需要加上break,否则会穿透

switch支持字符类型:

新的主题

字符串的操作,集合的操作
自定义函数
自定义指令

自定义函数和自定义指令继承的接口不同

对字符串的操作

拼接和截取:

长度、大小写、indexOf,freemarker没有

替换:

lastIndexOf

自定义函数,sort_int是已经定义好的函数,freemarker的语法风格都是下划线来隔开单词

后台代码:

具体代码:

List排序,内建函数,常用指令:?sort排序

倒序指令,?reverse

长度指令:

获取下标:

自定义指令:

自定义指令以@开头,自定义指令@role,两个入参,user和role

两个返回值,入参是key-value形式,空格隔开

入参和返回值之间用分号;隔开
多个返回值用逗号隔开
需要在xml中配置

后台代码:

以上代码没有截取完整,这一部分,每太高清楚,还需要看教程。

实现顶层接口,实现execute方法
参数都要转为freemarker定义的类型

freemarker常用内建函数:

处理数字的内建函数,处理字符串的内建函数

处理数字的内建函数:

处理List的内建函数:

其他内建函数:

代码演示内建函数,因为这些东西的使用,不用代码难以描述清楚:

字符串分割:

日期转换

数字和list内建函数:

其他内建函数:

高级内容

宏指令

函数指令

图2:

图3:

通过代码讲解:

代码1:定义指令test,一个html片段

代码2:定义带参数的macro指令,同时调用

代码3:有默认参数的macro指令

代码4:有多个参数的macro指令

内容不同的代码片段,nested语法:nested有点像占位符

函数:

回顾和知识总结:

最新文章

  1. HTML kbd键盘元素
  2. Coding4Fun Toolkit支持本地化解决办法
  3. python第一天 - dict
  4. Issue 5:Hadoop博客系列转载
  5. Java EE : 三、图解Session(会话)
  6. 一起买Beta版本系列文档
  7. php截取字符串
  8. JS——时间日期控件
  9. Sqlserver 笔记 持续更新
  10. Android 实现自动接听和挂断电话功能
  11. 我学C的那些年[ch01]:浅淡C语言的编译过程
  12. SQL中ISNULL的使用
  13. AngularJs (二) 搭建Deployd 服务爬坑
  14. List&lt;T&gt;转换为ObservableCollection&lt;T&gt;
  15. Alpha阶段-个人总结
  16. Matlab绘图基础——绘制三维表面
  17. 一键安装Cloud Torrent
  18. BIM特点及格式文件说明
  19. Redis哨兵模式(sentinel)部署记录(主从复制、读写分离、主从切换)
  20. web前端除了关注代码功能实现,还应具备web性能优化以及SEO优化的常识

热门文章

  1. dockerfile文件命令详解
  2. 【OpenCV】轮廓的特征矩Moment
  3. Golang语言细节小结
  4. Hive概述
  5. BiLSTM-CRF模型理解
  6. Design Phone Directory
  7. 【Python】【基础知识】【内置函数】【object的使用方法】
  8. _variant_t 与其他数据类型的转换
  9. 阿里云日志服务 ilogtail 卸载方法
  10. Stardew Valley(星露谷物语)Mod开发之路 1环境配置