FreeMarker模板引擎II
1.FreeMarker的方法调用
- 方法一般都写成小写形式
- 调用方法使用?而不是.
- 若方法不需要参数,则不需要加()
- 使用下划线而非驼峰命名法,如字符串的123456789101112131415161718## 2.自定义函数以下是一个自定义的排序函数,调用了TemplateMethodModelEx接口,复写了exec方法。```javapublic class SortMethod implements TemplateMethodModelEx {@Overridepublic Object exec(List list) throws TemplateModelException {SimpleSequence arg0 = (SimpleSequence) list.get(0);List<BigDecimal> list1 = arg0.toList();Collections.sort(list1, new Comparator<BigDecimal>() {@Overridepublic int compare(BigDecimal o1, BigDecimal o2) {return o1.intValue() - o2.intValue();}});return list1;}}
3.FreeMarker常用内建函数
|
|
- 1* ```starts_with、index_of、last_index_of、split、trim
处理List的内建函数:
- 12* ```size、reverse、sort、sort_by```(```list?sort``` 排序得到的序号为```${item_index}```)* ```chunk``` 分组```${listVal1?chunk(4)?size}
is函数:1234567eval:执行代码## 4.macro指令宏是一个模板片段与变量相关联。你可以使用定义的指令,可以帮助你多次使用。```<#macro greet> hello!</#macro>
上面这个macro不会打印任何东西,它只是创建一个宏变量。这里有个变量叫greet,在<#macro greet>
和</#macro>
之间的内容叫宏定义体。如果想要使用这样一个macro,可以这样<@greet></@greet>
,这个时候才真正使用这个macro.