我在理解 Freemarker 数据模型以及如何正确使用它方面遇到了问题。 我目前有 1 个核心数据类。 它塞满了(很多带有 getter 和 setter 的变量),我想将它分成不同的类。
但是我的核心类正在推动 Freemarker 处理...而我只是不明白,如何让它与多个类一起工作。
目前我用这个:
templateValues.process(config_generator.CDATA, stringWriter);
CDATA 是我的核心数据类...... 我检查了好几次 Freemarker 指南,但我就是不明白。
如果我要实现 2 个类(即 CDATA1 和 CDATA2),我将如何设置处理?这也适用于更多的类吗? (CDATA3 到 X)。
没有现成的这样的功能,但这只是您作为数据模型传入的
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
对象。
我知道我太晚了,但为什么不做类似的事情
Map<String, Object> dataModel = new HashMap<>();
dataModel.put("CDATA1", config_generator.CDATA1);
dataModel.put("CDATA2", config_generator.CDATA2);
templateValues.process(dataModel, stringWriter);
如果我有什么错误请纠正我。