网站首页 > 资源文章 正文
Freemarker是一款 模板引擎:即一种基于模板和要改变的数据,并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具。它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。
Freemarker基础语法种类
1、注释,即<#-- -->,介于其之间的内容会被freemarker忽略
<#--我是一个freemarker注释-->
2、插值(Interpolation):即${..}部分,freemarker会用真实的值代替${..}
Hello ${name}
3、FTL指令:和HTML标记类似,名字前加#予以区分,Freemarker会解析标签中的表达式或逻辑。
<# >FTL指令</#>
4、文本,仅文本信息,这些不是freemarker的注释、插值、FTL指令的内容会被freemarker忽略解析,直接输出内容。
<#--freemarker中的普通文本-->
我是一个普通的文本
集合指令-List
集合指令List的指令格式如下:
<#list></#list>
例子:
<#list stus as stu>
<tr>
<td>${stu_index+1}</td>
<td>${stu.name}</td>
<td>${stu.age}</td>
<td>${stu.money}</td>
</tr>
</#list>
${k_index}:得到循环的下标,使用方法是在stu后边加"_index",它的值是从0开始。
集合指令-Map
1.获取map中的值
map['keyname'].property
map.keyname.property
2.遍历map
<#list userMap?keys as key>
key:${key}--value:${userMap["${key}"]}
</#list>
if指令
if指令的语法格式如下:
<#if expression>
<#else>
</#if>
需求:在list集合中判断学生为小红的数据字体显示为红色。
<#if stu.name='小红'>
<tr style="color: red">
<td>${stu_index}</td>
<td>${stu.name}</td>
<td>${stu.age}</td>
<td>${stu.money}</td>
</tr>
<#else >
<tr>
<td>${stu_index}</td>
<td>${stu.name}</td>
<td>${stu.age}</td>
<td>${stu.money}</td>
</tr>
</#if>
在freemarker中,判断是否相等,=与==是一样的。
FreeMarker表达式中完全支持算术运算,FreeMarker支持的算术运算符包括:
①加法:+
②减法:-
③乘法:*
④除法:/
⑤求模(求余):%
常见的比较运算符,和它们用途说明如下表:
注意事项:=和!=可以用于字符串、数值和日期来比较是否相等?
=和!=两边必须是相同类型的值,否则会产生错误?字
符串"x"、"x "、"X"比较是不等的.因为FreeMarker是精确比较?
gt代替>, FreeMarker会把>解释成FTL标签的结束字符,可使用括号避免这种情况,如:<#if (x>y)>
空值处理
1、判断某变量是否存在使用"??"用法为:variable??,如果该变量存在,返回true,否则返回false。
例:为防止stus为空报错可以加上判断如下:
<#if stus??>
<#list stus as stu>
......
</#list>
</#if>
2、缺失变量默认值使用"!"
使用!要以指定一个默认值,当变量为空时显示默认值,例如${name!''}表示如果name为空显示空字符串。?
如果是嵌套对象则建议使用()括起来,例如${(stu.name)!''}表示,如果stu或name为空默认显示空字符串。
内建函数
内建函数语法格式:变量+?+函数名称
1.集合的大小。
${集合名?size}
2.日期格式化
显示年月日: ${today?date}
显示时分秒:${today?time}
显示日期+时间:${today?datetime}
自定义格式化:${today?string("yyyy年MM月")}
3.内建函数c
model.addAttribute("point", 102920122);
point是数字型,使用${point}会显示这个数字的值,每三位使用逗号分隔。如果不想显示为每三位分隔的数字,可以使用c函数将数字型转成字符串输出。
${point?c}
4.将json字符串转成对象
一个例子:其中用到了assign标签,assign的作用是定义一个变量。
<#assign text="{'bank':'工商银行','account':'10101920201920212'}" />
<#assign data=text?eval />
开户行:${data.bank}账号:${data.account}
猜你喜欢
- 2024-10-10 绿联40Gbps 雷电3数据线深度拆解,线芯多到离谱,怪不得速度飞起
- 2024-10-10 Vol.57|腾讯带你梦回大唐,跟随Marker漫游系统走进未来的家
- 2024-10-10 血管相关细胞类型单细胞测序数据库分享
- 2024-10-10 E-Marker芯片,USB数据线的“性能中枢”?
- 2024-10-10 Leaflet 带箭头轨迹以及沿轨迹带方向的动态marker
- 2024-10-10 这个工具可以组合参数画出2种单细胞Marker显示图
- 2024-10-10 流式课堂 | 流式配色基本原则(流式细胞配色技巧)
- 2024-10-10 全球23种地面无人战车(2031年全球无人地面车辆市场)
- 2024-10-10 有趣的图形:用Python绘制带饼图的散点图兼论marker的隐藏功能
- 2024-10-10 单细胞数据marker基因小提琴图绘制
你 发表评论:
欢迎- 最近发表
-
- 涨知识!电脑键盘上F1到F12的正确用法,你都会用吗?
- Win10《邮件》应用0x80070032错误:已发送邮件不同步
- 微软邮件服务系统出现大规模收发错误 预计24小时内修复
- Outlook365邮箱崩溃,备份邮箱,配置邮箱,还原数据
- Outlook服务瘫痪故障加重 微软遭遇的网络问题开始影响全球用户
- outlook邮箱报错:无法打开此文件夹集合pst文件错误
- 微软确认新版Windows Outlook支持在无互联网的情况下运行
- 用户隐私成隐忧,欧盟封锁微软 Outlook App
- 微软承认 Outlook 存在问题,会导致Exchange Online邮箱配置错误
- 如何在 Outlook 中撤回电子邮件(outlook怎么撤回邮箱)
- 标签列表
-
- 电脑显示器花屏 (79)
- 403 forbidden (65)
- linux怎么查看系统版本 (54)
- 补码运算 (63)
- 缓存服务器 (61)
- 定时重启 (59)
- plsql developer (73)
- 对话框打开时命令无法执行 (61)
- excel数据透视表 (72)
- oracle认证 (56)
- 网页不能复制 (84)
- photoshop外挂滤镜 (58)
- 网页无法复制粘贴 (55)
- vmware workstation 7 1 3 (78)
- jdk 64位下载 (65)
- phpstudy 2013 (66)
- 卡通形象生成 (55)
- psd模板免费下载 (67)
- shift (58)
- localhost打不开 (58)
- 检测代理服务器设置 (55)
- frequency (66)
- indesign教程 (55)
- 运行命令大全 (61)
- ping exe (64)
本文暂时没有评论,来添加一个吧(●'◡'●)