最近开发回显时,用到freemarker,总结如下:
p??: 针对对象, 判断p是否存在,
psgInfos?size: 调用psgInfo的内置方法
rushBag.bagDesStationCode?has_content:针对属性,判断是否问null和为空
调用类中的方法
自定义方法<#function echoBagItem currentItem > ,echoBagItem是函数名字,currentItem 是参数
调用该方法:"${echoBagItem(currentItem)}"
intsum?c:?c相当tostring()方法,把int类型转成String
作用 | 实例 | |
判空 | 1,代码:pr??作用:针对对象或者List,或者MAP,判 断是否存在,2,代码:msgContext?has_content作用:正对字符串或者对象的属性,判断是否为空 | CategoryMap??person.name?? |
获取长度 | 1,获取list长度:使用对象的内置方法 代码:psgInfos?size2,获取字符串长度 代码:ckiPsgCount?length<3 | 判断长度:(ckiPsgCount?length<3) |
字符串处理 | 1,字符串左填充 "${str}"?left_pad(4,"0") 2,截取字符串 <#assign str = str?substring(0,msgRowStr?length-1)> 3,int类型转成string类型 psgCount?c psgCount?tostring() 4,定义字符串和int类型变量 <#assign str ="">:定义字符串变量 <#assign str =0>:定义int变量 5,判断字符串长度大于0 <#if psmPassenger?length gt 1> <#if (ckiPsgCount?length<3)> 6,判断字符串是否含每个字符 <#if str?contains("/")> 7,获某个字符在字符串第一次出现的位置 <#assign index= str?index_of("/")> 8,去除字符串的前后空格 "${strs}"?trim 9,填充空格 ""?right_pad(2) | 1,str="aa",左填充之后:“00aa”,如果没有填0,这补充空格 2,psgCount是int类型 |
list处理 | 1,遍历list <#list psgList as psg> 2,获取list中第一个元素 <#if psg_index == 0> | 1,psg:是list中的一个元素或者对象 2,psg_index:list的索引 |
MAP处理 | 1,遍历Map <#list Map?keys as aKey> | 1,aKey:获取的MAP的key值,获取值可以"${aKey} <#assign mapkey = "${aKey}> 2,获取MAP的value: <#assign mapValue = "Map[aKey]> |
自定义函数 | <#function echoBagItem str1 int str2 > <#return str2> </#function> 1,调用:对于有返回值的函数数 <#assign str= echoBagItem (str1 3 aa)> 2,调用:对于没有放回值的函数 "${echoBagItem(str1 3 aa)}" 3,调用java代码中的函数, <#assign sdTime = "${fh,subLine(str)}"> | 1,该方法有三个参数,每个参数用空格隔开 3,需要在定义该方法所在的类, |
调用ftl问题 | <#assign flihtElement=""> <#include "/flihtElement.ftl"> | |