文章目录
  1. 1. 1.FreeMarker的方法调用
  2. 2. 3.FreeMarker常用内建函数

1.FreeMarker的方法调用

  • 方法一般都写成小写形式
  • 调用方法使用?而不是.
  • 若方法不需要参数,则不需要加()
  • 使用下划线而非驼峰命名法,如字符串的
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    ## 2.自定义函数
    以下是一个自定义的排序函数,调用了TemplateMethodModelEx接口,复写了exec方法。
    ```java
    public class SortMethod implements TemplateMethodModelEx {
    @Override
    public Object exec(List list) throws TemplateModelException {
    SimpleSequence arg0 = (SimpleSequence) list.get(0);
    List<BigDecimal> list1 = arg0.toList();
    Collections.sort(list1, new Comparator<BigDecimal>() {
    @Override
    public int compare(BigDecimal o1, BigDecimal o2) {
    return o1.intValue() - o2.intValue();
    }
    });
    return list1;
    }
    }

3.FreeMarker常用内建函数

排序得到的序号为```${item_index}```
1
2
处理字符串的内建函数:
* ```substring、cap_first、end_with、contains
  • 1
    * ```starts_with、index_of、last_index_of、split、trim

处理List的内建函数:

  • 1
    2
    * ```size、reverse、sort、sort_by```(```list?sort``` 排序得到的序号为```${item_index}```)
    * ```chunk``` 分组```${listVal1?chunk(4)?size}

is函数:

1
2
3
4
5
6
7
eval:执行代码
## 4.macro指令
宏是一个模板片段与变量相关联。你可以使用定义的指令,可以帮助你多次使用。
```<#macro greet>
hello!
</#macro>

上面这个macro不会打印任何东西,它只是创建一个宏变量。这里有个变量叫greet,在<#macro greet></#macro>之间的内容叫宏定义体。如果想要使用这样一个macro,可以这样<@greet></@greet>,这个时候才真正使用这个macro.

文章目录
  1. 1. 1.FreeMarker的方法调用
  2. 2. 3.FreeMarker常用内建函数