Freemarker 数据模型污染

Freemarker datamodel pollution

我已经开始使用 Freemarker 来生成一些基于数据模型的输出。我面临的问题是,为了生成输出,我一直在数据模型中公开方法。所以我觉得 "pollute" 我的数据模型完全是为了我的 Freemarker 模板。

这是一个例子:
我的数据模型,在我的例子中是一个接口,提供了这个方法(为了说明更改了名称和类型):

Collection<MyPojo> getMyPojos();

为了按照我想象的方式编写模板,我需要根据某些条件过滤一些MyPojo。我想首先在模板本身中执行此操作,但在模板中操作列表似乎相当复杂。
所以我最终在我的界面中添加了其他方法来满足需求:

Collection<MyPojo> getAddedMyPojos();
Collection<MyPojo> getRemovedMyPojos();

阅读 Freemarker 文档,我没有找到使用某些 Fremarker API 为模板处理器提供更多方法的方法。
Freemarker 有没有更聪明的方法来实现这个目标?我想只用第一种方法来保持我的界面干净。我是否需要创建一个专用的数据模型来扩展我的初始数据模型?或者创建一个 Map 并注入这个而不是我的数据模型(并用我的方法的结果填充它)?

谢谢!

正如 Glenn Lane 所建议的那样,最好为 Freemarker 隔离代码。所以实现一个专用的 POJO