2016-03-31

ftlCore架子
ftlCore包含了一些公共函数、docHead/docFoot等基础宏和函数定义。

注意:

该模板依赖于,乐得自定义的freemarker.2.3.23.jar包
不再支持2.3.18版 jar 包 自定义的no_ecode方法
是否编译需要使用新标签<#escape></#escape><#noescape></#noescape> 实现
示例

<#-- 文档首尾加上 escape 表示整个文档中的${}都按照html格式编译输出-->
<#escape x as x?html>
<#compress>
<#-- noescape标签中加入不需要编译的代码 -->

<#noescape>
${...}
</#noescape>
</#compress>
</#escape>
docHead/docFoot

提供 docHeadCore / docFootCore 两个公共宏,跟项目无关并提供足够的扩展和灵活性。项目代码中需要包装两个新宏使用: docHead/docFoot。详细见 demo-desktop.ftl 以及 demo-mobile.ftl

公共函数

flt数据转化成js数据

功能

支持sequence、hash、number、string、Boolean型ftl数据转换为js数据
注意:目前只支持hash的第一层关键字筛选输出
使用方法

直接调用宏

<@ftl2js ftldata=ftldata keepKeyList=["gameEn"]/>
使用表达式输出

1、输出js对象,等同ftl2js方法
${ftl2js_Obj(ftldata,[keepKeyList])}
2、输出字符串
${ftl2js_Str(ftldata,[keepKeyList])}
参数说明

ftldata 需要转换的ftl数据
keepKeyList hash表中需要保留下来的key,支持一下两种格式
keepKeyList = ['key1','key1','key2']
keepKeyList = 'key1,key1,key2'
示例

<#assign dataMap = {"key1":"value1","key2":123.5,"key3":["value3_1","value3_2"],"key4":false}>
<#assign dataList = ["a","b","c",{"key1":"value1","key2":123.5}]>

<@ftl2js ftldata=dataMap/>

${ftl2js_Obj(dataMap)}

${ftl2js_Str(dataList)}

${ftl2js_Obj(dataMap+{"key5":dataList})}

<@ftl2js ftldata=dataMap keepKeyList=['key1','key2']/>

${ftl2js_Obj(dataMap,'key1, key2')}

${ftl2js_Str(dataList,['key1','key2'])}

输出

{'key1':'value1','key2':123.5,'key3':['value3_1','value3_2'],'key4':false}
{'key1':'value1','key2':123.5,'key3':['value3_1','value3_2'],'key4':false}
"['a','b','c',{'key1':'value1','key2':123.5}]"

{'key1':'value1','key2':123.5,'key3':['value3_1','value3_2'],'key4':false,'key5':['a','b','c',{'key1':'value1','key2':123.5}]}
{'key1':'value1','key2':123.5}
{'key1':'value1','key2':123.5}
"['a','b','c',{'key1':'value1','key2':123.5}]"