freemarker常用标签
字符串空值处理:
freemarker中变量必须赋值,否则报错
!
: 指定缺失变量的默认值,不设置是空字符串,
2.??
: 判断变量是否存在,如果变量存在返回true,否则返回false
布尔值不能直接输出使用
myBool?string('yes', 'no')
或者myBool?string
或者myBool?c
直接指定的值,可以是
字符串,布尔,数值,集合,map
,
字符串中可以使用转义字符,如果有大量的特殊字符,,可以在引号前面加一个字母r
,则字符串将按照原样输出,不转义
指定为布尔时,不用加引号
指定为数值时,不需要引号
集合用中括号
表示,,可以使用5…1表示[1,2,3,4,5]
map使用花括号表示,map中的key-value用冒号分隔,map中多个key-value用逗号分隔
转换日期
<div>${birthday?date}</div>
<div>${birthday?time}</div>
<div>${birthday?datetime}</div>
<div>${birthday?string("yyyy-MM-dd HH:mm:ss")}</div>
表现数字,货币,百分比, ##保留两位小数
<#assign price=99>
<div>${price?string.currency}</div>
<div>${price?string.percent}</div><#assign number=3.1415>
<div>${number?string["0.##"]}</div>
集合的遍历
常见指令:
assign 定义一个变量
if
list
macro
assign
分支语句
if
<#assign age=18>
<#if (age>=60)>老年<#elseif age gte 40> 中年<#elseif age gte 20> 青年<#else>少年
</#if>
switch…case
<#--分支语句 break能提前终止集合的遍历-->
<div><#assign age=99><#switch age><#case 23>23 <#break><#case 24>24 <#break ><#default >hehe</#switch>
</div>
list
遍历集合
<#if users??><#list users as user><div>${user.id}---${user.name}---${user.address}---${user_index}---${user_has_next?string("yes","no")}</div></#list>
</#if>
集合拼接只能带中括号
和带中括号
拼接(确保类型一样),,集合中的元素可以是表达式
<#list [4+6,5,6]+[1,2,3] as x><div>${x}</div>
</#list>
访问集合中的某个元素,下标从0
开始
<#assign list=1..5>
<div>${list[0]}</div>
自定义map并遍历
<#assign info={"username":"cj","password":"123"}>
<#list info?keys as key><div>${key}---${info[key]}</div>
</#list>
<#list info?values as value><div>${value}</div>
</#list><#--拼接map-->
<#list (info+{"birthday":birthday})?keys as key><div>${key} ---</div>
</#list>
输出map指定元素
<#assign info={"username":"cj","password":"123"}>
<div>${info.username}</div>
<div>${info["username"]}</div>
字符串拼接
<div>${"hello "+name}</div>
<div>${"hello ${name}"}</div>
截取字符串,下标从0
开始
<#assign str="hello world">
<div>${str[0]}</div>
<div>${str[1..3]}</div>
比较运算符 = != > >= <= > gt , gte,lt,lte
freemarker的比较是精确比较,不会忽略大小写及空格
逻辑运算符 && || !
内建函数:
<div>${"hello"?cap_first}</div>
<div>${"HELLO"?lower_case}</div>
<div>${"hello"?upper_case}</div>
<div>${" hello "?trim}</div>
<div>${users?size}</div>
<div>${3.14?int}</div>
<div>${birthday?string("yyyy-MM-dd")}</div>
引入ftlh
<#--引入ftlh-->
<#include './index.ftlh'>
不解析
<#noparse>
不解析内容
</#noparse>
自定义宏:
宏:把你的操作录制下来,你可以去回放这个操作
宏和include区别: 宏可以传入自定义参数
<#macro book>三国演义
</#macro>
<#--调用宏-->
<@book/>
带参数的宏 nested
要嵌入的内容 ,写在调用宏标签的中间,去替换<#nested>
<#macro book books mark><#list books as item><div>${item}---${mark}</div></#list><#nested >
</#macro><@book ["三国演义","红楼梦"] "hehe">要嵌入的内容
</@book>
<@book books=["水浒传","西游记"] mark="111"></@book>
将宏抽离到单独的文件,使用import
引入并设置别名
<#-- 引入宏文件,取别名为com -->
<#import './mymacro.ftlh' as com>
<#-- 调用带前缀 -->
<@com.book bs=["红楼梦","西游记"] title="hehe"><h2>哦</h2>
</@com.books>
引用:https://blog.csdn.net/weixin_44454512/article/details/109877418
freemarker常用标签相关推荐
- freemarker常用标签 ftl模板文件常用标签
freemarker常用标签 ftl模板文件常用标签 1.注释 <#–-–>格式不会输出 2 list循环 <#list datalist as entity> ${e ...
- 滚动屏幕显示隐藏div_HTML结构-常用标签:a·img·table·form·input·iframe·div
学习目标: 掌握html的结构,head与body的区别 掌握常用标签 掌握a标签,img标签 掌握table标签 掌握form标签,input标签 掌握iframe 和frameSet标签 掌握di ...
- mybatis常用标签和动态查询
这里是修真院后端小课堂,每篇分享文从 [背景介绍][知识剖析][常见问题][解决方案][编码实战][扩展思考][更多讨论][参考文献] 八个方面深度解析后端知识/技能,本篇分享的是: [mybatis ...
- 1,html常用标签学习
1.html常用标签学习: 1.1.<em>和<strong>标签主要是用来做强调用的,其中<em>是让文字变成斜体,而<strong>把文字进行加粗显 ...
- web.xml 常用标签配置(转)
2019独角兽企业重金招聘Python工程师标准>>> 1.Web.xml作用: 每一个javaWeb工程都有一个web.xml配置文件,web.xml文件是用来初始化工程配置信息的 ...
- html(常用标签)
<!DOCTYPE html> <html><head><meta charset="utf-8"><title>常用标 ...
- freemarker自定义标签(二十一)
一,讲解一 假如你现在还在为自己的技术担忧,假如你现在想提升自己的工资,假如你想在职场上获得更多的话语权,假如你想顺利的度过35岁这个魔咒,假如你想体验BAT的工作环境,那么现在请我们一起开启提升技术 ...
- 初始html(常用标签)
今天我们来学习Web前端的一些知识,这一阶段需要记忆的东西相对来说比较多,需要花时间记忆以及做好练习. 一.HTML初识 1.web服务本质 import socketdef main():sock ...
- zblog php标签,201502200101 zblogphp调整“显示常用标签”个数方法
201502200101 zblogphp调整"显示常用标签"个数方法 6年前 (2015-02-20) 作者:iMoke 分类:原创·技术 阅读次数:2509 ...
最新文章
- 最小二乘拟合,L1、L2正则化约束--转
- boost::spirit模块演示了 AST 的生成,然后将其转储为人类可读的格式
- 【2012百度之星/初赛上】D:轮子上的度度熊
- Mybatis(20)注解实现二级缓存
- ​多大分辨率图像做分类更适合?浙大华为国科大等提出Dynamic Resolution Network,降低计算量还提性能!...
- python删除特定的几行数据_Python:分成几行,并根据搜索删除特定行 - python
- 小学生计算机学科竞赛类活动,自主招生/综合评价认可哪些科创类赛事?2020届参考...
- 从网络营销辞职转行软件测试,100天的心酸拿到9K,过程都是自己在苦撑,只因我...
- HDU2072 单词数【水题】
- Leetcode 038报数 题目分析 +python实现
- ENVI4.8下载与安装
- Oracle varchar和varchar2的区别
- VAR模型及格兰杰因果检验——基于tushare平台的数据
- 怎样成为时间管理的高手
- 局域网计算机网卡唯一标识,每块以太网卡都有一个用48个二进位表示的全球唯一的MAC地址,网卡安装在哪台计算机上,其MAC地址就成为该台计算机的 地址。...
- Java 习题 (12)
- 详解非局部均值滤波原理以及用MATLAB源码实现
- 苏州交管局领导参观闪马智能,考察视频分析交通领域应用
- 智能客服的解决方案以及相较于传统客服的技术优势
- webmatrix(WebMatrix升级)
热门文章
- notebook pip install 只有星号_意境深厚的感悟短语,通透走心,让人深有感触|未来|人世间|想要|只有你...
- 小程序如何引入阿里图标。
- oracle 中的日期函数
- 奇虎360:华尔街的新传奇
- 离散时间傅里叶变换,Z变换,离散傅里叶变换性质对比
- python批量合并excel固定单元格数据
- matlab伽玛分布如何表示,MATLAB如何使用gampdf函数计算伽马分布的概率密度
- getParameter与getAttribute两者的区别
- Windows10环境下Python 开发环境搭建
- 基于ijkplayer+Rxjava+Rxandroid+Retrofit2.0+MVP+Material Design的android万能播放器