0
点赞
收藏
分享

微信扫一扫

freemarker基本语法和引入spring做静态化


文章目录

  • ​​FTL指令​​
  • ​​assign指令​​
  • ​​include指定​​
  • ​​if指令​​
  • ​​list指令​​
  • ​​取集合中的数据​​
  • ​​取循环中的下标​​
  • ​​取Map集合中的数据​​
  • ​​内建函数​​
  • ​​获取集合大小​​
  • ​​转换json字符串为对象​​
  • ​​日期格式化​​
  • ​​数字转为字符串​​
  • ​​空值处理运算符​​
  • ​​判断某变量是否存在:“??”​​
  • ​​缺失变量默认值:“!”​​
  • ​​运算符​​
  • ​​算数运算符​​
  • ​​逻辑运算符​​
  • ​​比较运算符​​
  • ​​整合spring的配置文件做静态化​​

FTL指令

assign指令

  • 1)定义简单类型:

<#assign linkman="周先生">

  • 2)定义对象类型:

<#assign info={"mobile":"13301231212",'address':'北京市昌平区王府街'} >
电话:${info.mobile} 地址:${info.address}

运行结果:

freemarker基本语法和引入spring做静态化_字符串

include指定

此指令用于模板文件的嵌套
创建模板文件head.ftl

<h1>信息网</h1>

我们修改test.ftl,在模板文件中使用include指令引入刚才我们建立的模板 <#include “head.ftl”>

freemarker基本语法和引入spring做静态化_freemarker_02

if指令

在模板文件上添加

<#if success=true>
你已通过实名认证
<#else>
你未通过实名认证
</#if>

在代码中对str变量赋值

map.put("success", true);

在freemarker的判断中,可以使用= 也可以使用==

list指令

取集合中的数据

freemarker基本语法和引入spring做静态化_运算符_03

取循环中的下标

freemarker基本语法和引入spring做静态化_freemarker_04

取Map集合中的数据

freemarker基本语法和引入spring做静态化_freemarker_05


freemarker基本语法和引入spring做静态化_赋值_06


freemarker基本语法和引入spring做静态化_字符串_07

内建函数

获取集合大小

我们通常要得到某个集合的大小,如下图:

freemarker基本语法和引入spring做静态化_运算符_08


我们使用size函数来实现,代码如下:

  ${goodsList?size}

转换json字符串为对象

我们通常需要将json字符串转换为对象,那如何处理呢?看代码

<#assign text="{'bank':'工商银行','account':'10101920201920212'}" />
<#assign data=text?eval />
开户行:${data.bank} 账号:${data.account}

日期格式化

代码中对变量赋值:

dataModel.put("today", new Date());

在模板文件中加入

当前日期:${today?date} <br>
当前时间:${today?time} <br>
当前日期+时间:${today?datetime} <br>

数字转为字符串

代码中对变量赋值:

map.put(“point”, 102920122);

修改模板:

累计积分:${point}

页面显示:

freemarker基本语法和引入spring做静态化_运算符_09


我们会发现数字会以每三位一个分隔符显示,有些时候我们不需要这个分隔符,就需要将数字转换为字符串,使用内建函数c

累计积分:${point?c}

页面显示效果如下:

freemarker基本语法和引入spring做静态化_静态化_10

空值处理运算符

如果你在模板中使用了变量但是在代码中没有对变量赋值,那么运行生成时会抛出异常。但是有些时候,有的变量确实是null,怎么解决这个问题呢?

判断某变量是否存在:“??”

<#if aaa??>
aaa变量存在
<#else>
aaa变量不存在
</#if>

缺失变量默认值:“!”

我们除了可以判断是否为空值,也可以使用!对null值做转换处理
在模板文件中加入

${aaa!'-'}

在代码中不对aaa赋值,也不会报错了 ,当aaa为null则返回!后边的内容-

运算符

算数运算符

FreeMarker表达式中完全支持算术运算,FreeMarker支持的算术运算符包括:+, - , * , / , %

逻辑运算符

逻辑运算符有如下几个:
逻辑与:&&
逻辑或:||
逻辑非:!
逻辑运算符只能作用于布尔值,否则将产生错误

比较运算符

表达式中支持的比较运算符有如下几个:
1 =或者==:判断两个值是否相等.
2 !=:判断两个值是否不等.
3 >或者gt:判断左边值是否大于右边值
4 >=或者gte:判断左边值是否大于等于右边值
5 <或者lt:判断左边值是否小于右边值
6 <=或者lte:判断左边值是否小于等于右边值

注意: =和!=可以用于字符串,数值和日期来比较是否相等,但=和!=两边必须是相同类型的值,否则会产生错误,而且FreeMarker是精确比较,"x","x ","X"是不等的.其它的运行符可以作用于数字和日期,但不能作用于字符串,大部分的时候,使用gt等字母运算符代替>会有更好的效果,因为 FreeMarker会把>解释成FTL标签的结束字符,当然,也可以使用括号来避免这种情况,如:<#if (x>y)>

整合spring的配置文件做静态化

freemarker基本语法和引入spring做静态化_静态化_11


freemarker基本语法和引入spring做静态化_字符串_12

完!!


举报

相关推荐

0 条评论