SpringBoot整合Freemarker(四)
escape, noescape
语法
<#escape identifier as expression>
...
<#noescape>...</#noescape>
...
</#escape>
用例
主要使用在相似的字符串变量输出,比如某一个模块的所有字符串输出都必须是html安全的,这个时候就可以使用,说白了escape 包裹的内容,会被转义比如<>会编程<> 而noescape包裹的字符不会被转义,会被当成html代码执行。
<#escape x as x?html>
First name: ${firstName}
<#noescape>Last name: ${lastName}</#noescape>
Maiden name: ${maidenName}
</#escape>
等同于
First name: ${firstName?html}
Last name: ${lastName}
Maiden name: ${maidenName?html}
assign
语法
<#assign name=value>
<#assign name1=value1 name2=value2 ... nameN=valueN>
<#assign name>
capture this
</#assign>
<#assign name=value in namespace />
<#assign name in namespace >
capture this
</#assign>
用例
生成变量,并且给变量赋值
给aaa赋予序列值
<#assign aaa= ["winter", "spring", "summer", "autumn"]>
给变量test加1
<#assign test = test + 1>
给my namespace 赋予一个变量bgColor,下面可以通过my.bgColor来访问这个变量
<#import "/mylib.ftl" as my>
<#assign bgColor="red" in my>
将一段输出的文本量保存在x变量里
<#assign x>
<#list 1..3 as n>
${n} <@myMacro />
</#list>
</#assign>
global
语法
<#global name=value>
<#global name1=value1 name2=value2 ... nameN=valueN>
<#global name>
capture this
</#global>
全局赋值语法,利用这个语法给变量赋值,那么这个变量在所有的namespace 中是可见的, 如果这个变量被当前的assign 语法覆盖 如 在当前页面里x=2 将被隐藏,或者通过${.globals.x} 来访问
setting
语法
<#setting name=value>
用来设置整个系统的一个环境
locale
number_format
boolean_format
date_format , time_format , datetime_format
time_zone
classic_compatible, 默认值false,改成true ,${aaa}
用例:将数字的输出格式改为百分比
<#setting number_format="percent"/>
<#setting datetime_format="yyyy-MM-dd HH:mm:ss"/>
t, lt, rt
--
1 <#t>
2<#t>
3<#lt>
4
5<#rt>
6
--