Java:使用 2 个或更多类进行 Freemarker 数据模型处理

问题描述 投票:0回答:2

我在理解 Freemarker 数据模型以及如何正确使用它方面遇到了问题。 我目前有 1 个核心数据类。 它塞满了(很多带有 getter 和 setter 的变量),我想将它分成不同的类。

但是我的核心类正在推动 Freemarker 处理...而我只是不明白,如何让它与多个类一起工作。

目前我用这个:

templateValues.process(config_generator.CDATA, stringWriter);

CDATA 是我的核心数据类...... 我检查了好几次 Freemarker 指南,但我就是不明白。

如果我要实现 2 个类(即 CDATA1 和 CDATA2),我将如何设置处理?这也适用于更多的类吗? (CDATA3 到 X)。

java freemarker
2个回答
0
投票

没有现成的这样的功能,但这只是您作为数据模型传入的

TemplateHashModel
实现的问题。 (数据模型始终是
TemplateHashModel
,但如果您传入 POJO,FreeMarker 会通过
ObjectWrapper
中的
Configuration
自动调整它。)您可以轻松编写一个
TemplateHashModel
实现,其中包含其他列表
TemplateHashModel
-s,其
get(String)
从第一个封闭的
TemplateHashModel
返回所请求的变量,其
get(String)
返回非 -
null
。要使 POJO(
CDATA1
等)适应
TemplateHashModel
,请调用
cfg.getObjectWrapper().wrap(myObject)
,其中
cfg
freemarker.template.Configuration
对象。


0
投票

我知道我太晚了,但为什么不做类似的事情

Map<String, Object> dataModel = new HashMap<>();
dataModel.put("CDATA1", config_generator.CDATA1);
dataModel.put("CDATA2", config_generator.CDATA2);
templateValues.process(dataModel, stringWriter);

如果我有什么错误请纠正我。

© www.soinside.com 2019 - 2024. All rights reserved.